scrapy重试机制_针对特定网站scrapy爬虫的性能优化

本文介绍了如何针对58同城网站优化Scrapy爬虫的性能,探讨了DOWNLOAD_TIMEOUT、DOWNLOAD_DELAY、CONCURRENT_REQUESTS等设置的影响,并提出了四种优化策略:减少DOWNLOAD_TIMEOUT、取消DOWNLOAD_DELAY、增加CONCURRENT_REQUESTS以及限制CONCURRENT_REQUESTS_PER_IP。通过实验,发现减少DOWNLOAD_TIMEOUT可以显著提升性能,而其他策略需结合IP有效性进行调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用scrapy爬虫做性能优化时,一定要根据不同网站的特点来进行优化,不要使用一种固定的模式去爬取一个网站,这个是真理,以下是对58同城的爬取优化策略:

一、先来分析一下影响scrapy性能的settings设置(部分常用设置):

1,DOWNLOAD_TIMEOUT,下载超时,默认180S,若超时则会被retry中间件进行处理,重新加入请求队列

2019-04-18 20:23:18 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying (failed 1 times): User timeout caused connection failure: Getting https://bj.58.com/ershoufang/37767297466392x.shtml took longer than 180.0 seconds..

一般来说访问一个网站都是以ms作为单位的,180S确实有些太长了,而且,由于默认设置了最大并发数为16,导致这些request没有下载到东西还一直占据着并发数,在我的日志文件中就能大量看到retry日志

2.DOWNLOAD_DELAY,该选项默认为0,即在下载是并发执行,若设置为x,则每隔  0.5*random~1.5*random 秒下载下一个url,影响当然很大,很多时候还是建议给个正值,避免直接把服务器弄炸了,而且在IP准备不充分情况下,也有利于爬虫的持续运行,对双方都有好处

3.CONCURRENT_REQUESTS ,默认为16&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值