您好,登錄后才能下訂單哦!
這篇文章主要介紹了python使用requests語句為什么會報錯,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
python中使用requests語句報錯的原因主要有以下幾種情況:
1 連接超時
服務器在指定時間內沒有應答,拋出 requests.exceptions.ConnectTimeout
requests.get('http://github.com', timeout=0.001)
# 拋出錯誤
requests.exceptions.ConnectTimeout: HTTPConnectionPool(host='github.com', port=80): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7f1b16da75f8>, 'Connection to github.com timed out. (connect timeout=0.001)'))
2. 連接、讀取超時
若分別指定連接和讀取的超時時間,服務器在指定時間沒有應答,拋出 requests.exceptions.ConnectTimeout
- timeout=([連接超時時間], [讀取超時時間])
- 連接:客戶端連接服務器并并發送http請求服務器
- 讀取:客戶端等待服務器發送第一個字節之前的時間
requests.get('http://github.com', timeout=(6.05, 0.01)) # 拋出錯誤 requests.exceptions.ReadTimeout: HTTPConnectionPool(host='github.com', port=80): Read timed out. (read timeout=0.01)
3. 未知的服務器
拋出 requests.exceptions.ConnectionError requests.get('http://github.comasf', timeout=(6.05, 27.05)) # 拋出錯誤 requests.exceptions.ConnectionError: HTTPConnectionPool(host='github.comasf', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f75826665f8>: Failed to establish a new connection: [Errno -2] Name or service not known',))
4. 代理連接不上
代理服務器拒絕建立連接,端口拒絕連接或未開放,拋出 requests.exceptions.ProxyError
requests.get('http://github.com', timeout=(6.05, 27.05), proxies={"http": "192.168.10.1:800"}) # 拋出錯誤 requests.exceptions.ProxyError: HTTPConnectionPool(host='192.168.10.1', port=800): Max retries exceeded with url: http://github.com/ (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3. connection.HTTPConnection object at 0x7fce3438c6d8>: Failed to establish a new connection: [Errno 111] Connection refused',)))
5. 連接代理超時
代理服務器沒有響應 requests.exceptions.ConnectTimeout
requests.get('http://github.com', timeout=(6.05, 27.05), proxies={"http": "10.200.123.123:800"}) # 拋出錯誤 requests.exceptions.ConnectTimeout: HTTPConnectionPool(host='10.200.123.123', port=800): Max retries exceeded with url: http://github.com/ (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7fa8896cc6d8>, 'Connection to 10.200.123.123 timed out. (connect timeout=6.05)'))
6. 代理讀取超時
說明與代理建立連接成功,代理也發送請求到目標站點,但是代理讀取目標站點資源超時
即使代理訪問很快,如果代理服務器訪問的目標站點超時,這個鍋還是代理服務器背
假定代理可用,timeout就是向代理服務器的連接和讀取過程的超時時間,不用關心代理服務器是否連接和讀取成功
requests.get('http://github.com', timeout=(2, 0.01), proxies={"http": "192.168.10.1:800"}) # 拋出錯誤 requests.exceptions.ReadTimeout: HTTPConnectionPool(host='192.168.10.1:800', port=1080): Read timed out. (read timeout=0.5)
7. 網絡環境異常
可能是斷網導致,拋出 requests.exceptions.ConnectionError
requests.get('http://github.com', timeout=(6.05, 27.05)) # 拋出錯誤 requests.exceptions.ConnectionError: HTTPConnectionPool(host='github.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fc8c17675f8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))
感謝你能夠認真閱讀完這篇文章,希望小編分享python使用requests語句為什么會報錯內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。