1

私は現在BeautifulSoupを使用していくつかのWebサイトをスクレイプしていますが、特定の文字に問題があります。UnicodeDammit内のコードは、これが(再び)Microsoftによって発明されたものであることを示しているようです。

まだpython2.5を使用しているので、BeautifulSoup(3.0.8.1)の最新バージョンを使用しています。

次のコードは私の問題を示しています。

from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup('...Baby One More Time (Digital Deluxe Version…')
print soup

'...Baby One More Time (Digital Deluxe Version…'

ご覧のとおり、問題は最後にある「…」(&hellip)文字です(ブラウザはおそらく正しくエスケープされています)。明らかに、それは私が興味を持っていることではありません。

この文字がUnicode表現か何かを持っているといいでしょう。それを単純に無視することでさえ、私の特定の問題を解決するでしょう。

BeautifulSoupでこれを行うにはどうすればよいですか?

4

2 に答える 2

1

MSはそれを発明したかもしれませんが…、HTML 4の一部です:http ://www.w3.org/TR/REC-html40/sgml/entities.html

BeautifulSoupがエンティティを変換するために使用するものであるため、おそらくあなたLib/htmlentitydefs.pyは欠落しているか、古くなっています。

Python 2.5ソースツリーを見ると、126行目に定義されていることがはっきりとわかります。

于 2010-07-05T17:33:19.773 に答える
1

自分で解決策を見つけました:

soup = BeautifulSoup('...Baby One More Time (Digital Deluxe Version…', convertEntities="html")
于 2010-07-11T17:04:44.587 に答える