请说一下Scrapy及底层实现?如何设置多线程?爬虫除了Scrapy还了解过其他框架吗?
请说一下Scrapy及底层实现?如何设置多线程?爬虫除了Scrapy还了解过其他框架吗?
Scrapy由五大组件组成:调度器(Scheduler)、下载器(Dpwnloader)、爬虫(Spider) 、实体管道(item Pipline)、 Scrapy引 |擎(Scrapy Engine)
(1)爬虫将url通过引擎交给调度器;
(2)排序处理后,经ScrapyEngine, DownloaderMiddlewares(有User_ Agent, Proxy代理)交给 Downloader;
(3) Downloader向互 联网发送请求,并接收下载响应,将响应经ScrapyEngine, 可选交给Spiders;
(4) Spiders处理response, 提取数据并将数据经ScrapyEngine交给ItemPipeline保存; .
(5)提取url重新経ScrapyEngine交給Scheduler迸行 下一-个循坏。直到无Url清求程序停止結束。
scrapy网络请求是基于Twisted,而Twisted默认支持多线程,而且scrapy默认也是通过多线程请求的, 并且支持多核CPU的并发,我们通过一些设置提高scrapy的并发数可以提高爬取速度。
settingFixl : CONCURRENT_ REQUESTS_ PER_ _IP= 100 CONCURRENT_ REQUESTS= 100 CONCURRENT REQUESTS_ PER_ DOMAIN= 100 除了Scrapy框架还有PySpider。