2017-08-23 14 views
0

非ASCII文字(URLはhttp://www.one.co.il)を含むWebページを取得して解析しようとしています。これは私が持っているものです。PythonでUnicode文字を含むWebページを取得する方法

url = "http://www.one.co.il" 
req = urllib2.Request(url) 
response = urllib2.urlopen(req) 
encoding = response.headers.getparam('charset') # windows-1255 
html = response.read() # The length of this is valid - about 31000-32000, 
         # but printing the first characters shows garbage - 
         # '\x1f\x8b\x08\x00\x00\x00\x00\x00', instead of 
         # '<!DOCTYPE' 
html_decoded = html.decode(encoding) 

最後の行は私に例外を与える:

File "C:/Users/....\WebGetter.py", line 16, in get_page 
    html_decoded = html.decode(encoding) 
File "C:\Python27\lib\encodings\cp1255.py", line 15, in decode 
    return codecs.charmap_decode(input,errors,decoding_table) 
UnicodeDecodeError: 'charmap' codec can't decode byte 0xdb in position 14: character maps to <undefined> 

私は、このようなurllib2 read to UnicodeHow to handle response encoding from urllib.request.urlopen()他の関連の質問を見てみましたが、これに関する有用な何かを見つけることができませんでした。

誰かが光を当ててこのテーマで私を導くことができますか?ありがとう!

答えて

1

0x1f 0x8b 0x08は、gzippedファイルのマジックナンバーです。コンテンツを使用するには、事前に解凍する必要があります。

+0

私はレスポンスで探していなければならない他の「驚き」がありますか?必要なすべての後処理を含むページを透過的に取得する方法があるので、Chromeのビューソースのように見えますか? –

+0

誰かがそれを処理したと確信しています。見回す。 –

関連する問題