一尘不染

可以用pyspider代替Scrapy吗?

scrapy

我一直在广泛使用Scrapy网络抓取框架,但是最近我发现还有一个名为的框架/系统pyspider,根据github页面的介绍,该框架/系统是新鲜的,积极开发的并且很流行。

pyspider的首页列出了一些现成可用的支持内容:

  • 具有脚本编辑器,任务监视器,项目管理器和结果查看器的强大WebUI
  • 支持Javascript页面!
  • 任务优先级,重试,定期和按年龄或索引页中的标记重新爬网(例如更新时间)
  • 分布式架构

这些是它们Scrapy本身不提供的东西,但是,可以借助portia(对于Web UI),scrapyjs(对于js页面)和scrapyd(通过API部署和分发)的帮助。

真的可以pyspider单独替换所有这些工具吗?换句话说,是pyspider Scrapy的直接替代品吗?如果没有,那么它涵盖了哪些用例?


阅读 1613

收藏
2020-04-09

共1个答案

一尘不染

pyspider和Scrapy具有相同的目的,即网页抓取,但对此目的的看法不同。

  • spider永远都不要停止,直到WWW死了。(信息被改变,数据在网站更新,蜘蛛应该有刮最新数据的能力和责任。这就是为什么pyspider具有URL数据库,强大的调度,@every,age,等..)

  • pyspider比框架更能提供服务。(组件在隔离的进程中运行,精简版- all版本也作为服务运行,你不必具有Python环境,而是浏览器,有关获取或调度的所有操作均由脚本通过API控制,而不是由启动参数或全局配置,资源/项目控制由pyspider等管理)。

  • pyspider是一个spider系统。(可以替换任何组件,甚至可以用C / C ++ / Java或任何语言开发,以提高性能或扩大容量)

  • on_start vs start_url
  • token bucket traffic control vs download_delay
  • return json vs class Item
  • message queue vs Pipeline
  • built-in url database vs set
  • Persistence vs In-memory
  • PyQuery + any third package you like vs built-in CSS/Xpath support

PyQuery +你喜欢的任何第三个软件包与内置CSS / Xpath支持
实际上,我对Scrapy的引用并不多。pyspider与Scrapy确实不同。

2020-04-09