我一直在广泛使用Scrapy
网络抓取框架,但是,最近我发现有另一个框架/系统被调用pyspider
,根据它的github页面,它是新鲜的,积极开发和流行的.
pyspider
的主页列出了支持开箱即用的几件事:
功能强大的WebUI,包括脚本编辑器,任务监视器,项目管理器和结果查看器
支持Javascript页面!
任务优先级,重试,定期和按索引页面中的年龄或标记重新抓取(如更新时间)
分布式架构
这些是Scrapy
本身没有提供的东西,但是,可以借助portia
(对于Web UI),scrapyjs
(对于js页面)和scrapyd
(通过API部署和分发).
是否真的可以pyspider
单独替换所有这些工具?换句话说,是pyspider
Scrapy的直接替代品吗?如果没有,那么它涵盖哪些用例?
我希望我不会越过"过于宽泛"或"基于意见"的界限.
pyspider和Scrapy具有相同的目的,网络抓取,但对此做了不同的看法.
蜘蛛永远不会停止,直到WWW死了.(信息被改变,数据在网站更新,蜘蛛应该有刮最新数据的能力和责任.这就是为什么pyspider具有URL数据库,强大的调度,@every
,age
,等..)
pyspider不仅仅是一个框架服务.(组件在隔离的进程中运行,lite - all
版本也作为服务运行,你不需要Python环境而是浏览器,关于fetch或schedule的所有内容都是由脚本通过API而不是启动参数或全局配置,资源/项目来控制的由pyspider等管理......)
pyspider是一个蜘蛛系统.(任何组件都可以更换,甚至可以用C/C++/Java或任何语言开发,以获得更好的性能或更大的容量)
和
on_start
VS start_url
令牌桶流量控制vs.download_delay
return json
VS class Item
消息队列vs Pipeline
内置url数据库vs set
持久性与内存中
PyQuery +你喜欢的任何第三个包与内置的CSS/Xpath支持
事实上,我没有提到Scrapy.pyspider与Scrapy真的不同.
但是,为什么不亲自尝试一下呢?pyspider也很快,具有易于使用的API,您无需安装即可试用.