这是我的代码:
import urllib
print urllib.urlopen('http://www.indianexpress.com/news/heart-of-the-deal/811626/').read().decode('iso-8859-1')
当我在Firefox中查看页面时,文本显示正确。但是,在终端上,我看到了字符编码的问题。
以下是一些格式错误的输出示例:
long-term in Indias no-go areas
我该如何解决这个问题?
答案 0 :(得分:0)
试试这个(忽略未知的字符)
import urllib
url = 'http://www.indianexpress.com/news/heart-of-the-deal/811626/'
print urllib.urlopen(url).read().decode('iso-8859-1').encode('ascii','ignore')
答案 1 :(得分:0)
您需要使用实际的字符集sent by the server,而不是总是假设它是ISO 8859-1。使用功能强大的HTML解析器(例如Beautiful Soup)可以提供帮助。
答案 2 :(得分:0)
网页在于;它在cp1252
又名windows-1252
中编码,而不是在ISO-8859-1中编码。
>>> import urllib
>>> guff = urllib.urlopen('http://www.indianexpress.com/news/heart-of-the-deal/811626/').read()
>>> uguff = guff.decode('latin1')
>>> baddies = set(c for c in uguff if u'\x80' <= c < u'\xa0')
>>> baddies
set([u'\x93', u'\x92', u'\x94', u'\x97'])