2013-10-25 24 views
1

我試圖用urllib2從內部網站上刮掉數據。當我運行urllib2在網站上獲取404代碼,其中firefox獲取代碼200

try: 
    resp = urllib2.urlopen(urlBase) 
    data = resp.read() 
except HTTPError as e1: 
    print("HTTP Error %d trying to reach %s" % (e1.code, urlBase)) 
except URLError as e2: 
    print("URLError %d" % e2.code) 
    print(e2.read()) 

我得到引發HTTPError與404 e1.code如果我瀏覽到Firefox中的網站,並使用開發人員工具我看到了200的HTTP代碼有誰知道這個問題可能是什麼?

編輯1我呼籲在此之前,我也安裝一個空代理處理這樣的urllib2不會嘗試使用我的shell設置代理服務器設置:

handler = urllib2.ProxyHandler({}) 
opener = urllib2.build_opener(handler) 
urllib2.intall_opener(opener) 

編輯2 FWIW網址我正在瀏覽的是apache索引而不是html文檔。但是,Firefox讀取的狀態代碼仍然在說HTTP/1.1狀態200

回答

0

在我使用HTTP代理(如Charles)之後,有時會發生這種情況。在我的情況下,修復只是打開和關閉HTTP代理。

+0

我編輯了我的帖子,包括如何刪除urllib2檢測到的代理,以便我可以訪問此內部網站。有沒有其他辦法可以關閉代理來消除這個錯誤的404錯誤? – David

0

原來我嘗試訪問另一個觸發404錯誤的頁面時,我發現了一個函數。