1
我試圖按照來自this thread的建議,但它不起作用。在這一點上,我只是想執行一個非常簡單的測試,以確保我實際上從我試圖打開的網站獲取返回的數據。對於我的簡單測試,我試圖打開雅虎天氣api。我已經證實,在Web瀏覽器中輸入此地址確實會返回數據。我已經嘗試了這兩個代碼片段,但都沒有工作。無法在Python 2.7中使用urlopen來工作
import urllib
params = urllib.urlencode({'w': 2482950})
f = urllib.urlopen("http://weather.yahooapis.com/forecastrss?%s" % params)
print f.read()
這個例子直接來自Python網站。這死與:
import httplib
conn = httplib.HTTPConnection(host='weather.yahooapis.com', timeout=10)
req = '/forecastrss?w=2482950'
try:
conn.request('GET',req)
except:
print "Didn't work"
content = conn.getresponse().read()
print content
嘗試這給了我以下錯誤:
IOError: [Errno socket error] [Errno 110] Connection timed out
我使用httplib的這樣也試過
self.fp = sock.makefile('rb', 0)
AttributeError: 'NoneType' object has no attribute 'makefile'
看來,我永遠不會做連接到遠程主機。任何想法我做錯了什麼?
這兩個示例都適用於我。 –
您的計算機是否啓用了防火牆?如果是這樣,它是否允許由Python可執行文件創建的網絡連接? –
有一個防火牆,但我一起工作的其他人使用Python來建立網絡連接。但現在我想到了,他們連接到內部網站......所以也許這是我的問題。 – milnuts