加快爬虫速度:
- 在 settings.py 里把 TIMEOUT 设小点
- 提高并发数( CONCURRENT_REQUESTS )
- 瓶颈在 IO ,所以很有可能 IO 跑满,但是 CPU 没跑满,所以你用 CPU 来加速抓取其实是不成立的。不如开几个进程来跑死循环,这样 CPU 就跑满了
- 在 setting.py 里面,可以把单 IP 或者单 domain 的 concurrent 线程数改成 16 或者更高,我这两天发现 16 线程对一般的网站来说根本没问题,而且 scrapy 自己的调度和重试系统可以保证每个页面都成功抓取。
- 至于分布式,前提还是被抓的服务器可以接受,在这个前提下,我有个比较笨的方法: