【发布时间】:2015-11-16 06:21:48
【问题描述】:
我有一些简单的 python 代码可以用 urllib2 抓取网页:
response = urllib2.urlopen(url)
charset = response.headers.getheader("Content-Type")
charset = charset[charset.index("charset=") + 8:]
html = response.read()
html = " ".join(html.split())
html = html.decode(charset)
html = html.replace("amp;", "").replace("'", "'")
我的问题是我正在抓取的页面中有 Te Reo Māori 单词,因此它有很多包含宏的单词,例如。 “普太奥。”当我打印 HTML 时,所有的长音字母都替换为问号,我没有使用任何替换解码方法。它甚至在没有任何解码、拆分或连接的情况下发生。
同一站点上还有另一个页面包含一些相同的单词,并且宏在 python 中显示完全正常。我还注意到该页面的响应标头中的字符集是 utf-8,而带有问号的页面是 ISO-8859-1,因此可能与它有关。
带有问号的网站链接是http://www.nzqa.govt.nz/ncea/assessment/search.do?query=reo+maori&view=all&level=01。
另一个页面是http://www.nzqa.govt.nz/qualifications-standards/qualifications/ncea/subjects/
【问题讨论】:
标签: python python-2.7 encoding web-scraping urllib2