Python爬蟲——解決urlretrieve下載不完整問題且避免用時過長


https://blog.csdn.net/jclian91/article/details/77513289

 

但是經筆者測試,下載文件出現urllib.ContentTooShortError且重新下載文件會存在用時過長的問題,而且往往會嘗試好幾次,甚至十幾次,偶爾會陷入死循環,這種情況是非常不理想的。為此,筆者利用socket模塊,使得每次重新下載的時間變短,且避免陷入死循環,從而提高運行效率。 
  以下為代碼:

import socket
import urllib.request
#設置超時時間為30s socket.setdefaulttimeout(30) #解決下載不完全問題且避免陷入死循環 try: urllib.request.urlretrieve(url,image_name) except socket.timeout: count = 1 while count <= 5: try: urllib.request.urlretrieve(url,image_name) break except socket.timeout: err_info = 'Reloading for %d time'%count if count == 1 else 'Reloading for %d times'%count print(err_info) count += 1 if count > 5: print("downloading picture fialed!")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM