0

URLページをフェッチしてHTMLでエスケープするPythonスクリプトがあります。

ターゲットページには、英語とヘブライ語の両方のフォントが含まれています。

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シェル(ubuntu 12.04)で実行すると、最後から2番目の行(印刷の直前)で次のように失敗します。

'ascii' codec can't decode byte 0xe2 in position 775: ordinal not in range(128)

Eclipseではこれは正常に機能しているように見えるため、これをデバッグすることはできません。どうして?

4

1 に答える 1

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

おかげで: ファイル名の処理中に UnicodeDecodeError

于 2013-02-07T19:19:02.297 に答える