2

あるウェブサイトのセグメントを取得しようとしています。スクリプトは機能しますが、á、é、í、ó、ú などのアクセントのある Web サイトです。

urllib または urllib2 を使用してサイトをフェッチすると、サイトのソース コードが utf-8 でエンコードされません。utf-8 はこれらのアクセントをサポートしているためです。

ターゲット サイトには次のメタ タグが含まれているため、utf-8 でエンコードされていると思われます。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

私のpythonスクリプト:

opener = urllib2.build_opener()
opener.addheaders = [('Accept-Charset', 'utf-8')]
url_response = opener.open(url)
deal_html = url_response.read().decode('utf-8')

ただし、utf-8 でエンコードされていないように見える結果が得られます。

例: ウェブサイトの "Milán" = urllib2 が取得した後の "Mil\xe1n"

助言がありますか?

4

1 に答える 1

2

スクリプトは正しく機能しています。"\xe1"文字列は、デコードの結果のオブジェクトの表現ですunicode。例えば:

>>> "Mil\xc3\xa1n".decode('utf-8')
u'Mil\xe1n'

"\xc3\xa1"シーケンスは、分音記号が付いた文字 a のUTF -8シーケンスです: á。

于 2012-04-06T19:56:47.723 に答える