【问题标题】:Python Scrapy - Execute code after spider exitsPython Scrapy - 蜘蛛退出后执行代码
【发布时间】:2016-09-15 13:26:03
【问题描述】:

我无法找到该问题的答案。 scrapy蜘蛛退出后如何执行python代码:

我在解析响应的函数中执行了以下操作 (def parse_item(self, response):) : self.my_function() 比我定义的 my_function(),但问题是它仍然在蜘蛛的循环中。我的主要想法是使用收集的数据在蜘蛛循环之外的函数中执行给定的代码。 谢谢。

【问题讨论】:

    标签: python scrapy


    【解决方案1】:

    使用Scrapy类的函数closed如下:

    class MySpider(scrapy.Spider):
        # some attributes
        spider_attr = []
    
        def parse(self, response):
            # do your logic here
            # page_text = response.xpath('//text()').extract()
            self.spider_attr.append(whatever)
    
        def closed(self, reason):
            # will be called when the crawler process ends
            # any code 
            # do something with collected data 
            for i in self.spider_attr: 
                print(i)
    

    【讨论】:

    • 有没有办法将收集到的数据提供给该函数(“关闭”)?
    • 您可以向 MySpider 类添加属性。然后通过self.attributename 访问方法 closed() 中的那些属性
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    相关资源
    最近更新 更多