scrapy 速度优化

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34798152/article/details/79944729

主要有三个设置项来控制下载器的容量:CONCURRENT_REQUESTSCONCURRENT_REQUESTS_PER_DOMAIN和 

CONCURRENT_REQUESTS_PER_IP。第一个设置项提供了一个粗略的控制,无论如何不会有超过CONCURRENT_REQUESTS数目的请求被并发下载。在另一方面,如果你的目标域名只是一个或者少数的几个,那么CONCURRENT_REQUESTS_PER_DOMAIN可能就会提供对并发请求数目的更进一步的限制。不过如果你设置了CONCURRENT_REQUESTS_PER_IP,那么CONCURRENT_REQUESTS_PER_DOMAIN就会被忽略,这时的限制会是针对每个IP的。在很多域名都反射一个服务器的时候,这会帮你避免过度地访问远程服务器。

为了使我们的分析工作简单一点,我们把CONCURRENT_REQUESTS_PER_IP保持为默认值(0),这样就禁用了对每个IP的限制,并且把CONCURRENT_REQUESTS_PER_DOMAIN设置成一个很大的值(1000000) 。这样的设置实际上就是禁用了这些限制,这样下载器的并发请求数目就只由CONCURRENT_REQUESTS来控制了。

---------------------------------------------以上参考参考:https://blog.csdn.net/q_an1314/article/details/51245011

另外一个重要参数:DOWNLOAD_DELAY 

下载器在下载同一个网站下一个页面前需要等待的时间。该选项可以用来限制爬取速度, 减轻服务器压力。同时也支持小数:

建议视爬取网站来定,如果是大型数据网站或已知有反爬虫措施网站,使用ip池的情况下1-2秒之间,

否则就看你的爬取程度和网站来定(适当增加并发而不要充满恶意)

代理池的使用在前面

最后也是最重要的:优化你的代码,少跑非法链接,适当合并爬虫,对于可能报错的地方进行异常处理等

展开阅读全文

没有更多推荐了,返回首页