2016-09-17 16 views
0

WebサイトにHTMLソースコードを要求する基本的なスクリプトがあります。 いくつかのWebサイトをクロールしているうちに、ソースコード内のさまざまな属性が間違っているとわかりました。urllib read()属性を変更する

例:

from urllib import request 

opener = request.build_opener() 
with opener.open("https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2") as response: 
    html = response.read() 
print(html) 

Iは、クロムとFirefoxで表されるソースコードと結果(html VAR)を比較しました。

私はこのような違いを見た:

Browser      Urllib 

href='rfc2616.html'   href=\'rfc2616.html\' 
rev='Section'     rev=\'Section\' 
rel='xref'      rel=\'xref\' 
id='sec4.5'     id=\'sec4.4\' 

urllibコードを逃れるために、ここでバックスラッシュを入れているように見えます。

urllibの深いバグですか?またはこの問題を解決する方法はありますか?

ありがとうございます。

print(b'hello\nworld') # prints b'hello\nworld' 

はあなたが印刷されたときに、正しくエスケープを評価しstrdecodeにそれを必要があります:そのエスケープシーケンスは解釈されません印刷されたとき

答えて

0

responce.read()が見る、bytesオブジェクトを返します。

print(html.decode())