UnicodeDecodeCharacter 'ascii' cocec can't decode byte 0xe3 at position 348: ordinal not in range(128)
我有urllib.urlopen
个网站,我有.readlines()
逐段浏览,搜索某些文字。
我从一个有几个日文字符的网站上阅读(我想跳过这一部分),但我的代码在读取它时会崩溃。
或者更简单的说明,我可以将整个urllib.urlopen
转换为unicode,以便我不会收到此ASCII错误,如果是这样,我该如何搜索它?
答案 0 :(得分:2)
您可以读取原始字节,将它们转换为ascii(忽略非ascii)然后拆分行:
import urllib
url = 'http://www.asahi.com/'
u = urllib.urlopen(url)
rawdata = u.read()
u.close()
asciidata = rawdata.decode('ascii', 'ignore')
asciilines = asciidata.splitlines(False)
for line in asciilines[:40]:
print line
这段代码应该是你开始的。技术上更正确的方法是读取标题或正文的前几行以找到正确的字符集,然后使用该字符集进行解码。