scrapy和requests的优劣

学过爬虫的人一定知道scrapy和requests,前两天看了python的包下载量统计,下载量排名前三百的包中能找到django,tornado,requests甚至已经很老的twisted,但就是没有scrapy,这个问题引起了我的好奇,因为我之前在公司做项目就是用的scrapy采集数据,我对爬虫这个行业其实并不能算特别了解,上网找了些这方面的资料。

打两个也许那么恰当的比喻,其实scrapy就好像爬虫界的AK47,胜在做某些大批量数据采集时的简单易用,小孩子也能用拿他杀敌,而requests就像是瑞士军刀,经过专业训练的高手用它来杀敌于无形。但是数据采集中最重要的问题还是破解反爬,而scrapy作为一个框架,始终限定得太死了,太不灵活,在反爬和爬虫的对决中往往跟不上敌人的脚步,固然scrapy也有中间件,但比起用requests拓展功能,还是多了不少限制。当然scrapy还有一个优势是进行长期的项目维护管理。

我最近想把自己在豆瓣上的博客都爬下来,遇到了scrapy因为缺少cookie无法直接抓取页面,但是requests能够直接抓取页面的情况。这让我想起了以前写爬虫的时候不少需要cookie的网站有时候得用requests或selenium获得cookie再交给scrapy进行抓取,看来scrapy在cookie方面的框架原生支持是很弱的,尽管这有可能是出于框架的可拓展方面的考虑,使得scrapy能够可定制它的cookie获得流程。但对于一些小的抓取需求来说,这就太不方便了。

猜你喜欢

转载自blog.csdn.net/kekefen01/article/details/84734139