优草派 > Python

Python爬虫如何跳过异常继续执行?Python爬虫跳过异常处理方法

翟嘉慧         优草派

我们学习Python爬虫的时候就说过,它可以去网页中获取一些我们需要的数据,如何进行数据的分析,对数据进一步处理,最近有很多的小伙伴在说使用爬虫的时候遇到的异常的情况,但是不知道如何解决,下面一起来看看这篇文章吧。

Python爬虫如何跳过异常继续执行?Python爬虫跳过异常处理方法

一、异常报错

最近有一些小伙伴在使用爬虫爬图片的时候,会遇到下面的报错的情况,如下:

requests.exceptions.ConnectionError: HTTPConnectionPool(host='www.xxx.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0334D290>: Failed to establish a new connection: [WinError 10060]

又或者是下面这种错误,如下:

urllib.error.HTTPError: HTTP Error 403: Forbidden

二、解决方法:

当我们在爬取的时候如果出现以上两种情况之一,可能是因为网络连接的不稳定造成的,还有一种情况是某网站设置的防爬的操作,以为是不法访问那么会强制的关闭连接,从而操作我们的爬虫在运行的时候失败,此时我们就要利用异常处理的操作让爬虫继续运行,操作方法如下:

import requests
import time
import json
from td import td
url = 'https://www.xxxx.com' 这是一个需要爬取的网页地址。
for item in td(items): 这里的items是网页中需要爬取的框架,td设置的是一个简单的进度条,不想看进度条可以直接for item in items:
From_data = {'text': item} # 传入requests的数据
while True: #让请求一直继续,直到成功后break
try:
response = requests.post(url, data=From_data) # 如果这个请求失败,那么并不会运行break,将运行except中的代码
break # 能运行到这一步说明请求成功,可以跳出循环了
except:
time.sleep(1) # 暂停1秒,之后回到while True继续请求
print('sleep')
content = json.loads(response.text)# 跳出循环后对得到的数据处理

在这个程序中,就是使用while True去处理出现异常的情况,当出现异常的时候程序不继续往下执行,而是构成一个请求继续访问,知道成功为止。同时在报错的时候不会将一个程序中断,睡眠时间可以根据需求设置,如果设置为1秒的话,在运行速度上会快一些。

到此这篇关于Python爬虫如何跳过异常继续执行?Python爬虫跳过异常处理方法的文章就非常到这里了,希望文章中的内容可以对大家的学习带来一定的帮助,同时让大家掌握到更多Python爬虫的知识。

  • 微信好友

  • 朋友圈

  • 新浪微博

  • QQ空间

  • 复制链接

取消
5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024