阅读有日语的网站

时间:2011-12-03 06:28:11

标签: python unicode encoding ascii urllib

UnicodeDecodeCharacter 'ascii' cocec can't decode byte 0xe3 at position 348: ordinal not in range(128)

我有urllib.urlopen个网站,我有.readlines()逐段浏览,搜索某些文字。

我从一个有几个日文字符的网站上阅读(我想跳过这一部分),但我的代码在读取它时会崩溃。

或者更简单的说明,我可以将整个urllib.urlopen转换为unicode,以便我不会收到此ASCII错误,如果是这样,我该如何搜索它?

1 个答案:

答案 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

这段代码应该是你开始的。技术上更正确的方法是读取标题或正文的前几行以找到正确的字符集,然后使用该字符集进行解码。