2
我试图抓取一些网站的一部分。该脚本有效,但它是一个有á,é,í,ó,ú等口音的网站。urllib:获取utf-8编码的网站源代码
当我使用urllib或urllib2获取网站时,网站源代码不是用utf-8编码的,我希望它是utf-8支持这些重音符号。
我相信目标网站是UTF-8,因为它包含了以下meta标签编码:
<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')
不过,我不断收到结果就像他们没有编码un utf-8一样。
E.g: “米兰” 的网站= “军用\ xe1n” 后的urllib2获取它
有什么建议?
好吧,我现在看到,当我打印“Mil \ xc3 \ xa1n”时,它返回Milán,这是完美的。但是,当我从源代码中获取字符串并将它们追加到列表中时,我会得到“Mil \ xc3 \ xa1n”。我怎样才能使这个可读的(即米兰)在列表或字典? – 2012-04-06 21:16:39
该列表调用其中每个项目上的'repr()',这就是扩展字符被转义的原因。如果你需要一个更易读的表示来进行调试,只需要像'[str(x)for m in mylist]'。 – kindall 2012-04-06 22:20:39