首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ScrapyRT vs Scrapyd

ScrapyRT vs Scrapyd
EN

Stack Overflow用户
提问于 2016-05-18 02:16:06
回答 1查看 3.8K关注 0票数 26

到目前为止,我们使用Scrapyd service已经有一段时间了。它为一个scrapy项目提供了一个很好的包装器,并且它的爬行器可以通过HTTP API控制爬行器:

Scrapyd是一个用于运行Scrapy爬行器的服务。

它允许您部署Scrapy项目并使用HTTP JSON API控制它们的爬行器。

但是,最近我注意到了另一个“新鲜”的包-- ScrapyRT,根据项目描述,它听起来非常有前途,类似于Scrapyd

Scrapy

服务器,它提供了用于调度Scrapy爬行器和使用爬行器进行请求的应用程序接口。

这个包是Scrapyd的替代品吗?若有,两者有何分别?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-18 04:22:07

他们没有太多的共同点。正如您已经看到的,您必须将您的爬虫部署到scrapyd,然后计划爬行。scrapyd是一个在服务器上运行的独立服务,您可以在其中部署和运行您喜欢的每个项目/爬行器。

使用ScrapyRT,您可以选择一个项目,然后通过cd连接到该目录。然后运行scrapyrt,通过一个简单的(非常类似于scrapyd的) REST API开始爬行该项目中的爬虫。然后将抓取的项目作为JSON响应的一部分返回。

这是一个非常好的想法,它看起来快速,精简,定义良好。另一方面,Scrapyd更成熟,更通用。

以下是一些关键的区别:

  • Scrapyd支持多种版本的爬行器和多个项目。据我所知,如果你想用ScrapyRT运行两个不同的项目(或版本),你必须为每个项目使用不同的端口。
  • Scrapyd提供了在服务器中保存项目的基础设施,而ScrapyRT在响应时将它们发回给你,对我来说,这意味着它们应该在几MB的顺序(而不是潜在的GB)。类似地,与ScrapyRT.
  • Scrapyd (可能是持久性的)队列作业相比,scrapyd中日志记录的处理方式更为通用,并使您能够控制并行运行的Scrapy进程的数量。据我所知,ScrapyRT做了一件简单的事情,那就是在请求到达时立即开始抓取每个请求。阻止其中一个爬行器中的代码也会阻止其他爬行器。
  • ScrapyRT需要一个url参数,据我所知,该参数会覆盖任何start_urls-related逻辑。

我想说的是,ScrapyRT和Scrapyd在这一点上非常巧妙地没有重叠。当然,你永远不会知道未来会发生什么。

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37283531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档