我有一个python脚本,它获取一个url页面,然后html将其转义。
目标页面包含英文和希伯来字体。
opener = urllib2.build_opener(
urllib2.HTTPRedirectHandler(),
urllib2.HTTPHandler(debuglevel = 0),
urllib2.HTTPSHandler(debuglevel = 0),
urllib2.HTTPCookieProcessor(self.cj)
)
response = opener.open(url)
data = response.read()
goodData = HTMLParser.HTMLParser().unescape(data)
print goodData
在eclipse中运行时代码运行正常。 当打包并在linux shell(ubuntu 12.04)上运行时,它在下一个到最后一行(在打印之前)失败了:
'ascii' codec can't decode byte 0xe2 in position 775: ordinal not in range(128)
我无法调试这个,因为在eclipse中这似乎工作正常。 怎么样?
答案 0 :(得分:0)
好的,解决了它:
opener = urllib2.build_opener(
urllib2.HTTPRedirectHandler(),
urllib2.HTTPHandler(debuglevel = 0),
urllib2.HTTPSHandler(debuglevel = 0),
urllib2.HTTPCookieProcessor(self.cj)
)
response = opener.open(url)
data = response.read()
data = data.decode('utf8')
goodData = HTMLParser.HTMLParser().unescape(data)
print goodData