【问题标题】:Implementing own scrapyd service实现自己的scrapyd服务
【发布时间】:2015-05-11 02:32:09
【问题描述】:

我想为 scrapyd API 创建自己的服务,它应该返回更多关于运行爬虫的信息。我一开始就卡住了:我应该将包含该服务的模块放在哪里。如果我们查看默认的“scrapyd.conf”,它有一个名为 services 的部分:

[services]
schedule.json     = scrapyd.webservice.Schedule
cancel.json       = scrapyd.webservice.Cancel
addversion.json   = scrapyd.webservice.AddVersion
listprojects.json = scrapyd.webservice.ListProjects
listversions.json = scrapyd.webservice.ListVersions
listspiders.json  = scrapyd.webservice.ListSpiders
delproject.json   = scrapyd.webservice.DeleteProject
delversion.json   = scrapyd.webservice.DeleteVersion
listjobs.json     = scrapyd.webservice.ListJobs

所以这是scrapyd包中每个服务的绝对路径,它放在dist-packages文件夹中。有没有办法放置我自己的模块,包含不在 dist-packages 文件夹中的服务?

更新。 意识到这个问题可能不清楚。 Scrapy 是一个用于解析网站数据的框架。我有一个简单的 django 站点,我可以从该站点启动/停止特定区域等的爬虫(http://54.186.79.236 它是俄语)。使用爬虫进行操作是通过 scrapyd API 进行的。默认情况下,它有一个小 API,仅用于启动/停止/列出爬虫及其日志等。此 API 列在此文档的 http://scrapyd.readthedocs.org/en/latest/api.html 所以上面是一个小介绍,现在的问题。我想扩展现有的 API 以从正在运行的爬虫中检索更多信息并将其呈现在我上面提到的网站中。为此,我需要继承现有的 scrapyd.webservice.WsResource 并编写服务。如果我将该服务模块放在“sys.path”路径之一中,那部分就可以了。但我想将此包含模块的服务保留在scrapy项目文件夹中(出于某种审美原因)。因此,如果我将其保留在那里,它会在scrapyd 启动时争论(可预测地)“没有命名模块”。

【问题讨论】:

    标签: python scrapy scrapyd


    【解决方案1】:

    所以,我按照this解决了我的问题。

    【讨论】:

      猜你喜欢
      • 2012-11-18
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多