2回答

0收藏

scrapy保存失败链接

问答交流 问答交流 1060 人阅读 | 2 人回复 | 2021-01-08


假如用scrapy-redis爬取1亿个种子url,如何保存到失败的链接到数据库

这里的失败的链接不单指访问异常,只要是这条链接没有产生对应的一条item,都算失败,有以下多种情况

1.可能这个链接已经失效,404错误

2.可能ip异常,进行失败重试30次后才导致最终失败

3.可能解析异常,程序直接报错

等等,各种异常不到的情况,导致这条链接没有产生对应的item

有的人可能说中间件捕获异常,手动捕获异常,这种方法不适用于2这种情况,并且写起来也麻烦,有没有通用方法
分享到:
回复

使用道具 举报

回答|共 2 个

jdf000

发表于 2021-1-8 16:21:55 | 显示全部楼层

手动捕获异常可以,第二种情况也是可以的,捕获异常中间件权重值必须小于550
回复

使用道具 举报

jdf000

发表于 2021-1-8 16:31:02 | 显示全部楼层

补充:请求时中间件权重值越小的优先级越高(更接近引擎),在响应时,权重值越大的优先级越高(更接近下载器),当发生异常时,更接近下载器的优先级越高,在设置中间件优先级时一定要确定好顺序链。RetryMiddleware的权重是550,所以要设置550以下
回复

使用道具 举报