我们学习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 requestsimport timeimport jsonfrom td import tdurl = 'https://www.xxxx.com' 这是一个需要爬取的网页地址 。for item in td(items): 这里的items是网页中需要爬取的框架,td设置的是一个简单的进度条,不想看进度条可以直接for item in items:From_data = {'text': item} # 传入requests的数据while True: #让请求一直继续,直到成功后breaktry:response = requests.post(url, data=https://www.ycpai.cn/python/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爬虫如何跳过异常继续执行?Python爬虫跳过异常处理方法的文章就非常到这里了,希望文章中的内容可以对大家的学习带来一定的帮助,同时让大家掌握到更多Python爬虫的知识 。
推荐阅读
- cmd命令行怎样运行python?在cmd命令行中运行python脚本的方法
- Python程序调试有哪些方法?Python怎么调试程序
- 晒干的天麻怎么吃法 晒干的天麻如何吃
- Scrapy如何运行爬虫?scrapy直接运行爬虫的方法
- Pycharm如何下载和安装?Pycharm下载安装的教程
- Python单例类怎么创建?Python创建单例模式代码如何写
- Sublime编辑器如何显示制表符和空格?Sublime怎么修改tab键为4个空格
- SublimeText3如何新建python文件?Sublime怎么保存文件为py类型
- Sublime如何显示文件列表?Sublime编辑器怎么打开文件夹
- Python如何保存图片到数据库中?Python图片保存到数据库代码怎么写