python - urllib : get utf-8 encoded site source code

标签 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')

但是,我不断得到的结果看起来好像没有采用 utf-8 编码。

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

有什么建议吗?

最佳答案

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

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

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

关于python - urllib : get utf-8 encoded site source code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10048438/

相关文章:

python - 我的 Django 查询 : how to improve the speed of list view

java - 有没有办法将非 ascii 字符转换为 unicode 并保持 ascii 不变?

python - 使用 urllib2.urlopen 时获取 "TypeError: unhashable type"

python - 布局内容更改后将 QMainWindow 调整为最小尺寸

python - 如何选择结合了列表和范围的数据框列

python - 在 [Python] 中查找所有 TR(来自 html <table>)

ruby - 在 ruby​​ 中处理来自 json 的错误 UTF-8

python - 将 JSON 写入文件而不将转义反斜杠写入文件?

python - 为什么这个 url 使用 httplib2 和 urllib2 引发 BadStatusLine?

python - Python 2.7.10 抓取网页时 Unicode 字符替换为问号