python requests請求卡住問題

來源:互聯網
上載者:User

標籤:requests   receive   尋找   網路   限制   dns   down   dns解析   cond   

最近經常接到別人反饋某個爬蟲工具程式沒有正常運行,需要下載的資訊資料也沒有及時進行收錄。

剛開始以為可能是機器的問題,偶爾機器會出現程式運行中途卡住的情況。

但隨著異常的情況越來越頻繁,我便只好去排查問題。

通過查看程式啟動並執行日誌資訊,發現程式總是卡在requests請求的那一步。

這讓我覺得很奇怪,這一步為什麼會卡住呢,我已經設定了逾時時間,按理說逾時的話程式會進入異常啊,然而卻什麼異常資訊都沒有輸出。

尋找了相關的資料,發現確實存在這種情況。

requests文檔上有寫,timeout is not a time limit on the entire response download; rather, an exception is raised if the server has not issued a response for timeout seconds (more precisely, if no bytes have been received on the underlying socket for timeout seconds). If no timeout is specified explicitly, requests do not time out. 

大概的意思就是說requests請求上設定的timeout不是整個響應下載的時間限制,這裡的timeout應該理解為與伺服器串連後接收資料的時間,如果超過規定的時間則為逾時。這與我之前的理解有很大不同。

那麼如何解決這個問題呢?

目前有兩種方法解決,一種是更改dns,並且推薦阿里的dns,因為他們認為這裡的卡住是因為卡在了dns解析那裡。

另一種則是設定全域的socket逾時時間,通過

import socket 
socket.setdefaulttimeout(時間) 

這兩句代碼來解決。

通過測試,使用第二種方案後,程式還是會卡住。(難道真的是卡在dns解析?如果是的話,只能更改dns嗎?有沒有別的辦法?)

因為目前對網路連接方面不是很瞭解,所以尚不太清楚具體原因。這個問題先留在這,待解決時再來補充。

python requests請求卡住問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.