2016-11-30 28 views
0

我一直在試圖用repl.it來做到這一點,並嘗試過在這個網站上的幾個解決方案,但他們都沒有工作。現在,我的代碼看起來像如何獲取使用Python 3的網站的HTML?

import urllib 
url = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345" 
print (urllib.urlopen(url).read()) 

但它只是說「AttributeError:模塊'urllib'沒有屬性'urlopen'」。

如果我添加導入urllib.urlopen,它告訴我沒有名稱的模塊。我該如何解決我的問題?

+0

請參閱http://stackoverflow.com/a/25863131/4895040 – raymelfrancisco

+0

可能的重複http://stackoverflow.com/questions/3969726/attributeerror-module-object-has-no-attribute-urlopen – Joe

+0

可能的重複[Python的urllib urlopen不工作](http://stackoverflow.com/questions/25863101/python-urllib-urlopen-not-working) – zondo

回答

3

您用於urllib庫的語法來自Python v2。對於Python v3,該庫已經發生了一些變化。新的符號看起來會更像是:

import urllib.request 
response = urllib.request.urlopen("http://www.google.com") 
html = response.read() 

html對象只是一個字符串,與網站返回的HTML。很像原始的urllib庫,您不應該期望圖像或其他數據文件被包含在這個返回的對象中。

這裏的混亂的部分是,在Python 3,如果你這樣做會失敗:

import urllib 
response = urllib.request.urlopen("http://www.google.com") 
html = response.read() 

這種奇怪的模塊進口行爲,有人告訴我,因爲預期和工作。但它不直觀和尷尬。更重要的是,對你來說,這使得情況更難調試。請享用。

+0

謝謝,但由於某種原因,它仍然不能在repl.it工作。它只是說「urllib.error.URLError:」 –

+0

@ K.Michael這是您通常會遇到的錯誤,如果您沒有連接到互聯網。抱歉。但是,它可能是DNS服務器更微妙的問題。如果您從Raspberry Pi運行代碼或通過代理連接到互聯網,那麼DNS更可能是問題所在。 – theJollySin

相關問題