ale*_*cxe 21 python web-crawler scrapy web-scraping pyspider
我一直在广泛使用Scrapy网络抓取框架,但是,最近我发现有另一个框架/系统被调用pyspider,根据它的github页面,它是新鲜的,积极开发和流行的.
pyspider的主页列出了支持开箱即用的几件事:
功能强大的WebUI,包括脚本编辑器,任务监视器,项目管理器和结果查看器
支持Javascript页面!
任务优先级,重试,定期和按索引页面中的年龄或标记重新抓取(如更新时间)
分布式架构
这些是Scrapy本身没有提供的东西,但是,可以借助portia(对于Web UI),scrapyjs(对于js页面)和scrapyd(通过API部署和分发).
是否真的可以pyspider单独替换所有这些工具?换句话说,是pyspiderScrapy的直接替代品吗?如果没有,那么它涵盖哪些用例?
我希望我不会越过"过于宽泛"或"基于意见"的界限.
Bin*_*nux 26
pyspider和Scrapy具有相同的目的,网络抓取,但对此做了不同的看法.
蜘蛛永远不会停止,直到WWW死了.(信息被改变,数据在网站更新,蜘蛛应该有刮最新数据的能力和责任.这就是为什么pyspider具有URL数据库,强大的调度,@every,age,等..)
pyspider不仅仅是一个框架服务.(组件在隔离的进程中运行,lite - all版本也作为服务运行,你不需要Python环境而是浏览器,关于fetch或schedule的所有内容都是由脚本通过API而不是启动参数或全局配置,资源/项目来控制的由pyspider等管理......)
pyspider是一个蜘蛛系统.(任何组件都可以更换,甚至可以用C/C++/Java或任何语言开发,以获得更好的性能或更大的容量)
和
on_start VS start_urldownload_delayreturn json VS class ItemPipelineset事实上,我没有提到Scrapy.pyspider与Scrapy真的不同.
但是,为什么不亲自尝试一下呢?pyspider也很快,具有易于使用的API,您无需安装即可试用.
小智 7
由于我同时使用scrapy和pyspider,我想提出以下建议:
如果网站真的很小/很简单,请先尝试 pyspider,因为它几乎拥有您需要的一切
但是,如果您尝试过 pyspider 并发现它不能满足您的需求,那么是时候使用 scrapy 了。- 将 on_start 迁移到 start_request - 将 index_page 迁移到解析 - 将 detail_age 迁移到 detail_age - 将 self.crawl 更改为 response.follow
然后你就快完成了。现在您可以使用scrapy 的高级功能,如中间件、项目、管道等。
| 归档时间: |
|
| 查看次数: |
6722 次 |
| 最近记录: |