2010-07-07 141 views
3

我想使用urllib2打開一個頁面,但是我一直收到連接超時錯誤。
裏面我是用該生產線是: f = urllib2.urlopen(url)urllib2連接超時錯誤

確切的錯誤是:

URLError: <urlopen error [Errno 110] Connection timed out>

+0

可以加載網址在瀏覽器? – SilentGhost 2010-07-07 17:31:01

+0

是的,網址在瀏覽器中加載。我認爲問題可能出在我的連接設置上。 python urllib2如何連接到互聯網? – zubinmehta 2010-07-07 17:39:57

+0

你是否支持代理? – SilentGhost 2010-07-07 17:41:48

回答

4

urllib2尊重robots.txt。許多網站阻止默認User-Agent

嘗試添加新User-Agent,用它們作爲論據urlopen創建Request對象&:

import urllib2 

request = urllib2.Request('http://www.example.com/') 
request.add_header('User-agent', 'Mozilla/5.0 (Linux i686)') 

response = urllib2.urlopen(request) 

一些詳細穿行可用,如http://www.doughellmann.com/PyMOTW/urllib2/

+3

它似乎不太可能尊重robots.txt。這需要urllib2執行一個額外的網絡請求來獲取文件。雖然網站可能會阻止某些用戶代理,但這是另一回事。 – 2012-04-12 14:15:24

0

作爲一般戰略,開放的Wireshark並觀看由urllib2.urlopen(url)產生的流量。您可能能夠看到錯誤來自哪裏。