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

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

    Traceback (most recent call last):
  File "new_request2.py", line 82, in
    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(': 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

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

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

你可能感兴趣的:(python)