1. ホーム
  2. python

PythonでXML/HTMLエンティティをUnicode文字列に変換する [重複]。

2023-09-25 10:25:33

質問

私はいくつかのウェブスクレイピングをしていて、サイトは頻繁に非アスキー文字を表現するためにHTMLエンティティを使用します。Pythonは、HTMLエンティティを持つ文字列を取り、ユニコードタイプを返すユーティリティを持っているのでしょうか?

例えば

戻ってくる。

ǎ

で、トーンマーク付きの"ǎ"を表します。 バイナリでは16ビットの01ceとして表現される。 このhtmlの実体を、次のような値に変換したい。 u'\u01ce'

どのように解決するのですか?

標準の lib の独自の HTMLParser には文書化されていない関数 unescape() があり、これはまさにあなたが考えていることを実行します。

Python 3.4 まで。

import HTMLParser
h = HTMLParser.HTMLParser()
h.unescape('© 2010') # u'\xa9 2010'
h.unescape('© 2010') # u'\xa9 2010'

Python 3.4+ です。

import html
html.unescape('© 2010') # u'\xa9 2010'
html.unescape('© 2010') # u'\xa9 2010'