urllib:获取utf-8编码的网站源代码

时间:2012-04-06 19:41:44

标签: python encoding urllib2 utf8-decode

我正在尝试获取一些网站的片段。该脚本有效,但它是一个具有á,é,í,ó,ú等重音符号的网站。

当我使用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')

但是,我不断得到看起来没有编码的结果。

例如:urllib2获取后,网站上的“Milán”=“Mil \ xe1n”

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您的脚本运行正常。 "\xe1"字符串是解码产生的unicode对象的表示。例如:

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

"\xc3\xa1"序列是带有变音符号的字母a的UTF-8序列:á。