请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

异常处理并重试怎么实现

使用scrapy时,假设在执行过程中,发生异常(exception就可以,不用具体到什么异常),然后想保留当前爬取目标,重试n次,这个怎么处理??

正在回答

1回答

首先你得定位什么是异常? 比如对方给你返回了一个401状态码,比如对方给你返回的是200状态码但是内容是空的,这样算不算异常,比如你爬取的过程中出现了代码异常?这样算不算异常,所以异常你必须得自己心里有个数,不能随便就说异常,这样肯定不行,爬虫一把的异常就是状态码,比如4xx的都认为是异常状态,这些状态码的异常如果想重试可以可以设置哪些状态码重试的,而且scrapy也内置了重试的middleware

0 回复 有任何疑惑可以回复我~
  • 提问者 弗兰克的IT生活 #1
    基本了解了,我想直接捕获exception,而不是具体的exception进行处理,谢谢,我这查一下,先捕获,再重试
    回复 有任何疑惑可以回复我~ 2021-03-16 10:01:50
  • 提问者 弗兰克的IT生活 #2
    衍生的问题,通过代理爬取目标网站,有的代理很慢,如果我设置超时时间,会出现一个异常吗???这里我怎么重试?假设超时时间是10秒,10秒到了如何发起scrappy的重试
    回复 有任何疑惑可以回复我~ 2021-03-16 10:02:44
  • 提问者 弗兰克的IT生活 #3
    比如:
    ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
    我这里如何重试??
    回复 有任何疑惑可以回复我~ 2021-03-16 10:03:31
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信