Scrapy设置之Performance概览

本文探讨了如何调整Scrapy爬虫的性能,包括设置最大并发请求数以保护机器资源,调整每个响应的并发下载数以优化处理速度,以及设定下载延迟以应对网站的反爬策略。同时,还介绍了DNS缓存的使用,以加快DNS查询效率。

性能方面的设置选项可以让我们根据工作量来调整爬虫的性能。

CONCURRENT_REQUESTS设置了最多可以同时处理的请求数目,它保护了你机器的输出带宽不超出负载,以防程序在同时爬很多个不同的站点(域名/IP)。不过除非是这种情况,一般而言还是CONRRENT_REQUEST_PER_DOMAINCONCURRENT_REQUEST_PER_IP更加有用。如果CONCURRENT_REQUEST_PER_IP是非零值,那么CONCURRENT_PER_DOMAIN设置项就会被忽略掉。要注意的是这些设置并不是以每秒为单位的,例如,假设你的CONCURRENT_REQUESTS = 16,而平均每个请求花费的时间是0.25s,那么上限就是每秒16 / 0.25 = 64个请求。

CONCURRENT_ITEMS设置了对于每个响应最多可以同时处理的Item的数目。大多数情况下这个设置项作用不大,因为经常是每个页面或者请求的响应只有一个Item。默认值是100,如果减小这个值,比如说减小到10或者1,甚至有可能会发现程序的性能会根据每个请求中Item的数目和pipelines的复杂度而有所提升。要注意一点,这个值的单位是每个请求,如果你的CONCURRENT_REQUESTS = 16,CONCURRENT_ITEMS= 100,那么就意味着最多会有1600个Items试图写到数据库里。通常情况下可以把这个值设置得小一些。

关于下载的方面,DOWNLOAD_TIMEOUT决定了下载器在取消一个请求之前的等待时间,默认情况下是180s,对于大多数情况下是远远够用的(如果是16个并发请求的话,180s就意味着一分钟才5个页面),建议你把这个值设置得小一些,比如如你有超时的问题的话,可以设置为10s。默认情况下,Scrapy把每次下载之间的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值