17

BeautifulSoup を使用して HTML ドキュメントからテキストを取得しようとしています。私にとって非常に関連性のあるケースでは、それは奇妙で興味深い結果を引き起こします: ある時点の後、スープはテキスト内の余分なスペースでいっぱいになります (スペースはすべての文字を次の文字から分離します)。その理由を見つけるために Web を検索しようとしましたが、反対のバグに関するいくつかのニュースしか見つかりませんでした (スペースはまったくありません)。

なぜそれが起こるのか、そしてこの問題を解決する方法について何か提案やヒントはありますか?.

これは私が作成した非常に基本的なコードです:

from bs4 import BeautifulSoup

import urllib2
html = urllib2.urlopen("http://www.beppegrillo.it")
prova = html.read()
soup = BeautifulSoup(prova)
print soup

そして、これは結果から取られた行で、この問題が発生し始める行です:

value=\"Giuseppe labbate ogm? non vorremmo nuovi uccelli chiamati lontre\"><input onmouseover=\"Tip('<centerclass = \ \ ' title _ video \ \ ' > < b > G iuseppelabbateogm ? nonvorremmonuoviuccel lichiamatilontre <

4

3 に答える 3

17

これは Lxml の HTML パーサーのバグだと思います。試す:

from bs4 import BeautifulSoup

import urllib2
html = urllib2.urlopen ("http://www.beppegrillo.it")
prova = html.read()
soup = BeautifulSoup(prova.replace('ISO-8859-1', 'utf-8'))
print soup

これは問題の回避策です。この問題は lxml 3.0 alpha 2 および lxml 2.3.6 で修正されていると思われるため、新しいバージョンにアップグレードする必要があるかどうかを確認する価値があります。

バグに関する詳細情報が必要な場合は、最初にここに提出されました。

https://bugs.launchpad.net/beautifulsoup/+bug/972466

お役に立てれば、

ヘイデン

于 2013-07-25T15:17:13.550 に答える