2016-09-17 93 views
0

我有一個基本腳本,它要求網站獲取html源代碼。 抓取多個網站時,我發現源代碼中的不同屬性代表錯誤。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) 

我比較了結果(html VAR)與源代碼由鉻和Firefox表示。

我看到這樣的差異:

Browser      Urllib 

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

它看起來像urllib是把反斜線這裏逃脫代碼。

這是一個內心深處的問題urllib還是有什麼辦法解決這個問題嗎?

在此先感謝。印刷時,其轉義序列沒有得到解釋

回答

0

responce.read()會返回一個bytes對象,請參閱:

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

你需要decodestr其中,在打印時,正確評估逃逸:

print(html.decode())