0

我正在尝试编写一个简单的scrapy扩展类来在蜘蛛通过电子邮件关闭时发送爬虫统计信息。这是我到目前为止所拥有的,效果很好。

class SpiderClosedCommit(object):

    def __init__(self, stats):
        self.stats = stats

    @classmethod
    def from_crawler(cls, crawler):
        ext = cls(crawler.stats)
        crawler.signals.connect(ext.spider_closed, signal=signals.spider_closed)
        return ext

    def spider_closed(self, spider):
        spider_stats = self.stats.get_stats(spider)
        # some more code to send an email with stats ...

但现在我正试图弄清楚如何将列表添加到具有被抓取的域的统计信息中。我浏览了文档,但我无法弄清楚代码应该是什么样子以及将它放在哪里,在扩展程序中还是在蜘蛛类中。如何访问扩展类中的抓取域或如何访问蜘蛛类中的统计信息?

在此先感谢并祝一切顺利

雅克

4

1 回答 1

2

这是一种方法:

  1. 使您的扩展挂钩到response_received信号并从中提取域response.url
  2. 在您的扩展程序中保留set()看到的域
  3. 关闭蜘蛛时,spider_stats在通过电子邮件发送之前添加这些域
于 2013-09-04T20:46:28.700 回答