gpt4 book ai didi

python - Scrapy 扩展 : spider_closed is not called

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:55 24 4
gpt4 key购买 nike

我有一个附加到 spider_opened 和 spider_closed 的扩展。正确调用了 spider_opened 方法,但没有正确调用 spider_closed 方法。我通过调用 scrapyd 取消端点关闭蜘蛛。

class SpiderCtlExtension(object):

@classmethod
def from_crawler(cls, crawler):
ext = SpiderCtlExtension()

ext.project_name = crawler.settings.get('BOT_NAME')
crawler.signals.connect(ext.spider_opened, signal=signals.spider_opened)
crawler.signals.connect(ext.spider_closed, signal=signals.spider_closed)

return ext

def spider_opened(self, spider):
sql = """UPDATE ctl_crawler
SET status = 'RUNNING'
WHERE jobid = '{}' """.format(os.getenv("SCRAPY_JOB"))
engine.execute(sql)

def spider_closed(self,spider,reason):
sql = """UPDATE ctl_crawler
SET status = '{}'
WHERE jobid = '{}' """.format(reason.upper(),os.getenv("SCRAPY_JOB"))
engine.execute(sql)

我是不是做错了什么?

最佳答案

这是一个(特定于 Windows 的)错误,请参阅我的错误报告 https://github.com/scrapy/scrapyd/issues/83

原因是取消方法的工作方式,没有调用蜘蛛进程中的关闭处理程序。

关于python - Scrapy 扩展 : spider_closed is not called,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28768241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com