使用python的requests库爬取数据时候遇到的ConnectionError

    最近刚得到一个爬取网络数据的源代码,刚开始爬取少量数据的时候,一切顺利。可是随着爬取的数据越来越庞大,问题也就越来越多了。遇到的一个比较头疼的问题就是连接错误。具体错误信息如下:

    Traceback (most recent call last):
  File "new_request2.py", line 82, in <module>
    result = requests.put(page_url, headers=headers, data=json.dumps(info_payload))
  File "C:\Users\12611\AppData\Local\Programs\Python\Python36-32\lib\site-packages\requests\api.py", line 126, in put
    return request('put', url, data=data, **kwargs)
  File "C:\Users\12611\AppData\Local\Programs\Python\Python36-32\lib\site-packages\requests\api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Users\12611\AppData\Local\Programs\Python\Python36-32\lib\site-packages\requests\sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\12611\AppData\Local\Programs\Python\Python36-32\lib\site-packages\requests\sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\12611\AppData\Local\Programs\Python\Python36-32\lib\site-packages\requests\adapters.py", line 508, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='106.120.181.197', port=80): Max retries exceeded with url: /cpad_new/api/common/doQuery 
(Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x05FA2670>: Failed to establish a new connection: [WinError 10060]
 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。',))

网上查阅了很多资料,但是没有十分符合自己情况的。但是无意间看到一个帖子就是说自己的访问次数太过频繁,被ban了。那么,解决方法就来了。

    如果我们使用except requests.exceptions.ConnectionError来进行捕捉这个异常,并在这个except异常处理语句中硬怼行不行?

具体思路如下:

  try:

        #你的爬取语句

    except XXX:

        time_sleep = 0

        while True:

                time.sleep(1)#自己随便定义多少秒

                try:

                    #再次执行这次爬取语句

                except XXX:

                    time_sleep = time_sleep + 1

                    if(tiem_sleep == 100)#自己随便定义多少次

                        print("你的网络可能的确出现问题了!!")

                        break

                    continue

        #最后可以在这里再打印下出现连接异常时的信息,最后可以用来校验。我就是这么做的!

算是一个简单的分享。第一次写,以后还会锻炼自己的写作能力。望帮助到各位。不喜勿喷,谢谢

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值