zoukankan      html  css  js  c++  java
  • urlopen error [errno 10060]的解决思路

    当用多线程爬取某个网站的数据的时候,爬取一段时间后,总出现urlopen error [errno 10060]的错误,结果线程无端的被挂掉,一开始的解决思路是每次连接的时候换用不同的useragent,结果还是出现这种问题,在网上查了下,看到网上别人的经验,原来是 如果用多个线程爬去某个网站的数据,每次连接完的时候,需要sleep(1)一会,不然该网站服务端的防火墙会ban掉你的connect。so 按照这种解决方法,果然不再出现urlopen error [errno 10060]的异常了。

    睡眠等待机制会减少urlopen error [errno 10060]出现的概率,但访问次数多了还是会出现

    于是看了网上说法是连接时网络不稳定造成的,于是写了个多次尝试连接的函数

    [python] view plain copy
     
     
    1. def getUrl_multiTry(url):  
    2.     user_agent ='"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36"'  
    3.     headers = { 'User-Agent' : user_agent }  
    4.     maxTryNum=10  
    5.     for tries in range(maxTryNum):  
    6.         try:  
    7.             req = urllib2.Request(url, headers = headers)   
    8.             html=urllib2.urlopen(req).read()  
    9.             break  
    10.         except:  
    11.             if tries <(maxTryNum-1):  
    12.                 continue  
    13.             else:  
    14.                 logging.error("Has tried %d times to access url %s, all failed!",maxTryNum,url)  
    15.                 break  
    16.               
    17.                   
    18.     return html  


    经测验,可以搞定urlopen error [errno 10060]

  • 相关阅读:
    关于 Xpath 定位
    关于安全渗透测试
    hashlib python 加密框架
    Flask pythn Web 框架总结
    HTMLTestRunner 报告框架使用
    Unittest
    随笔-关于飞机维修检测-想到的
    LoadRunner 工具使用
    Appium
    ak发大水发
  • 原文地址:https://www.cnblogs.com/lpbca/p/7216716.html
Copyright © 2011-2022 走看看