到目前为止,我们一直在使用Scrapyd
service一段时间。它为scrapy项目提供了一个很好的包装器,它的蜘蛛可以通过HTTP API来控制蜘蛛:
Scrapyd是一种运行Scrapy蜘蛛的服务。
它允许您部署Scrapy项目并控制其蜘蛛 使用HTTP JSON API。
但是,最近,我注意到另一个"新鲜"包 - ScrapyRT
,根据项目描述,听起来非常有前途,与public RelayCommand<int> MyCommand = new RelayCommand<int>((i) =>
{
if (i != 0)
{
DoSomething(i);
}
});
类似:
HTTP服务器,提供用于调度Scrapy蜘蛛并使用蜘蛛发出请求的API。
此套餐是Scrapyd
的替代品吗?如果是,那两者之间有什么区别?
答案 0 :(得分:17)
他们没有多少共同之处。正如您已经看到的,您必须将您的蜘蛛部署到报废,然后安排爬网。 scrapyd是一个在服务器上运行的独立服务,您可以在其中部署和运行您喜欢的每个项目/蜘蛛。
使用ScrapyRT,您可以选择一个项目,并选择cd
到该目录。然后你运行,例如scrapyrt
并且您通过一个简单的(和非常类似于scrapyd&#39; s)REST API开始为该项目上的蜘蛛进行爬网。然后,您将获取已爬网的项目作为JSON响应的一部分。
这是一个非常好的主意,它看起来快速,精简且定义明确。另一方面,Scrapyd更成熟,更通用。
以下是一些主要差异:
url
参数,据我所知,它可以覆盖任何与start_urls
相关的逻辑。我想说ScrapyRT和Scrapyd在这个时间点非常巧妙地不重叠。当然,你永远不知道未来会怎样。