在scrapy管道中使用scrapyd作业ID

mou*_*uch 3 scrapy scrapyd

我已经实现了一个使用scrapyd API 触发scrapy Spiders 的web 应用程序(web 应用程序和scrapyd 在同一台服务器上运行)。

我的 Web 应用程序正在存储从数据库中的 scrapyd 返回的作业 ID。我的蜘蛛正在数据库中存储项目。

问题是:如何在数据库中链接scrapyd 发布的作业ID 和爬网发布的项目?

我可以使用一个额外的参数来触发我的蜘蛛——比如说我的网络应用程序生成的 ID——但我不确定它是最好的解决方案。最后,如果scrapyd已经发布了它,则不需要创建该ID...

谢谢你的帮助

Raf*_*ida 5

该问题应表述为“如何在运行时获取scrapyd 任务的作业ID?”

当scrapyd 运行蜘蛛时,它实际上将作业ID 作为参数提供给蜘蛛。应始终作为 的最后一个参数sys.args

此外, os.environ['SCRAPY_JOB']应该做的伎俩。

  • 谢谢,你说得对!我尝试在我的蜘蛛构造函数中编写 `logger.debug(kwargs)`,并且带有这个键的 scrapyd 作业 id 出现了这个键 `DEBUG: {'_job': 'd584ea40454911e794246c4008a91422'}` (3认同)