2

我正在尝试获取某个网站的一部分。该脚本有效,但它是一个带有 á、é、í、ó、ú 等口音的网站。

当我使用 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 回答