2011-11-08 51 views
0

我正嘗試使用Python連接到網站並獲取HTTP狀態代碼。根據this other question of mine的回答,網站(例如google.com)的HTTP狀態代碼爲301或302(永久移動)的原因是這些服務器正在重定向。但是,我希望能夠以這樣的方式連接到它們,以便從它們中獲得自然的200(OK)。這是我現在的代碼:如何防止301代碼重定向網站?

import httplib 

conn = httplib.HTTPConnection("google.com", 80) 
conn.request("GET","/") 
r = conn.getresponse() 
print r.status, r.reason 
conn.close() 

我需要改變/添加什麼來達到這個目的?我聽說pycurl圖書館可能會幫助我,但谷歌搜索迄今尚未帶來任何有用的結果。我是這個領域的新手,所以請原諒,如果這個問題是微不足道的。

+0

重複問題:http://stackoverflow.com/questions/301924/python-urllib-urllib2-httplib-confusion –

回答

2

我假設你想要的是你的代碼跟着301/302s到最後的URL返回200?

如果是這樣,你可以嘗試使用urllib,或更好的使用requests,你可以用pip來安裝。

兩個urllib,更可靠requests應該按照301的和302的,給你的最後一頁,它返回一個200

信息請求模塊可以在這裏找到: http://pypi.python.org/pypi/requests/

希望這有助於。