Python 3.x 刮痧蜘蛛

Python 3.x 刮痧蜘蛛,python-3.x,web-scraping,scrapy,Python 3.x,Web Scraping,Scrapy,我有一个脚本,我需要在我的蜘蛛关闭后运行。我看到Scrapy有一个名为spider_closed的处理程序,但我不知道如何将它合并到我的脚本中。我期待做的是一旦刮板完成爬行,我想结合我所有的csv文件,他们加载到工作表。如果任何人都有这样的例子,那就太好了。根据中的例子,您可以在Spider中添加以下内容: # This function remains as-is. @classmethod def from_crawler(cls, crawler, *args, **kwargs):

我有一个脚本,我需要在我的蜘蛛关闭后运行。我看到Scrapy有一个名为spider_closed的处理程序,但我不知道如何将它合并到我的脚本中。我期待做的是一旦刮板完成爬行,我想结合我所有的csv文件,他们加载到工作表。如果任何人都有这样的例子,那就太好了。

根据中的例子,您可以在Spider中添加以下内容:

# This function remains as-is.
@classmethod
def from_crawler(cls, crawler, *args, **kwargs):
    spider = super().from_crawler(crawler, *args, **kwargs)
    crawler.signals.connect(spider.spider_closed, signal=signals.spider_closed)
    return spider

# This is where you do your CSV combination.
def spider_closed(self, spider):
    # Whatever is here will run when the spider is done.
    combine_csv_to_sheet()
根据中的示例,将以下内容添加到Spider中:

# This function remains as-is.
@classmethod
def from_crawler(cls, crawler, *args, **kwargs):
    spider = super().from_crawler(crawler, *args, **kwargs)
    crawler.signals.connect(spider.spider_closed, signal=signals.spider_closed)
    return spider

# This is where you do your CSV combination.
def spider_closed(self, spider):
    # Whatever is here will run when the spider is done.
    combine_csv_to_sheet()
根据我的评论,这里是一种在完成多个spider之后运行一些代码的方法。这不涉及使用spider_关闭信号

根据我的评论,这里是一种在完成多个spider之后运行一些代码的方法。这不涉及使用spider_关闭信号


我知道如果我运行多个蜘蛛会发生什么。我要知道最后一只蜘蛛什么时候关上了。在这种情况下该如何工作?如何运行多个spider?如果你一个接一个地把它们踢出去,那么我不确定是否有一种内在的方法可以做到这一点。然而,如果您使用启动多个爬行器,那么您将不会使用信号,您只需在最后运行代码即可。是的,我就是这样做的。我正在通过爬网过程运行所有四个爬行器。我想我明白你的意思了,我可以在爬行器进程的正下方编写脚本,一旦这些进程完成,下一行代码就可以将数据合并到一张表中?是的!就是这个主意。谢谢你的帮助!我知道如果我运行多个蜘蛛会发生什么。我要知道最后一只蜘蛛什么时候关上了。在这种情况下该如何工作?如何运行多个spider?如果你一个接一个地把它们踢出去,那么我不确定是否有一种内在的方法可以做到这一点。然而,如果您使用启动多个爬行器,那么您将不会使用信号,您只需在最后运行代码即可。是的,我就是这样做的。我正在通过爬网过程运行所有四个爬行器。我想我明白你的意思了,我可以在爬行器进程的正下方编写脚本,一旦这些进程完成,下一行代码就可以将数据合并到一张表中?是的!就是这个主意。谢谢你的帮助!