2016-07-28 14 views
3

beautifulsoup4を使ってXHTMLで書かれた一連のWebページを解析しようとしています。私は最良の結果を得るために、xmlパーサーとペアにする必要があると仮定しています。私の知る限り、beautifulsoupでサポートされているのはlxmlだけです。しかし美味しいスープ内にlxmlが見つかりません

、私はbeautifuloupドキュメントごとに次のことを実行しよう:

import requests 

from bs4 import BeautifulSoup 
r = requests.get(‘hereiswhereiputmyurl’) 
soup = BeautifulSoup(r.content, ‘xml’) 

それは、次のエラーが発生:

FeatureNotFound: Couldn't find a tree builder with the features you  
requested: xml. Do you need to install a parser library? 

ITSは狂気私を運転。私はlxmlのを再インストールして更新する(直接、この線より下のリンクを参照してください)このポストを使用してもここで同じ問題にHow to re-install lxml?

ここで bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?

を掲載二つの他のユーザーのレコードをIを発見しました更新された美しいスープ、しかし私はまだエラーを取得しています。 Installing lxml, libxml2, libxslt on Windows 8.1

私は、次のコードを実行し、それがマークアップ言語 スープ= BeautifulSoup(r.content、「html.parser」)のその通常の壁を私に提示しているためBeautifulsoupはここ

は私のスペックですが、特に働いています私は(確かに、私はについて多くを知らない)私のコード

を実行するために、アナコンダ3にスパイダーのIDEを使用3.5.2 のWindows 8.1 Pythonは私が初心者がASのでどうなることmessupその確信しています私はプログラミングの経験がほとんどないと言いました。

この問題を解決するにはどうすればよいですか、それとも既知のバグであれば、lxmlだけでデータをスクラップすることをお勧めしますか?

+1

'lxml'をインポートするとどうなりますか? – DeepSpace

+0

'soup = BeautifulSoup(r.content、 'lxml')'はどうですか? – har07

+0

xpathやcssを知っていれば、私はlxmlをbs4​​よりも使うでしょうが、あなたの問題はPythonの1つのバージョンに対してlxmlをインストールしている可能性が高く、別のものを使用しています。 –

答えて

0

問題はr.contentだと思います。通常、レスポンスの生の内容を提供します。これは必ずしもHTMLページではなく、jsonなどでもかまいません。
r.textをスープにフィードしてみてください。

soup = BeautifulSoup(r.text, ‘lxml’) 

ベター:

r.encoding='utf-8' 

その後、

page = r.text 

soup = BeautifulSoup(page, 'lxml') 

あなたはXMLを解析しようとしているならば、あなたはパーサとして'lxml-xml'使用することができます。

関連する問題