Python 在多个爬行器完成爬行后使用Scrapy发送电子邮件警报

Python 在多个爬行器完成爬行后使用Scrapy发送电子邮件警报,python,scrapy,Python,Scrapy,只是想知道实现这一点的最佳方式是什么。我有两个爬行器,我想根据这两个爬行器完成爬行后刮取的内容发送电子邮件警报 我正在使用基于教程的脚本运行两个爬行器,如下所示: 如果名称=“\uuuuu main\uuuuuuuu”: 进程=爬网进程(获取项目设置() 进程爬网(NqbpSpider) 进程。爬网(GladstoneSpider) process.start()#脚本将在此处阻塞,直到爬网完成 最好在process.start()之后调用电子邮件函数,还是在close\u spider函数下

只是想知道实现这一点的最佳方式是什么。我有两个爬行器,我想根据这两个爬行器完成爬行后刮取的内容发送电子邮件警报

我正在使用基于教程的脚本运行两个爬行器,如下所示:

如果名称=“\uuuuu main\uuuuuuuu”:
进程=爬网进程(获取项目设置()
进程爬网(NqbpSpider)
进程。爬网(GladstoneSpider)
process.start()#脚本将在此处阻塞,直到爬网完成
最好在process.start()之后调用电子邮件函数,还是在close\u spider函数下的pipelines.py文件中编写电子邮件函数

def close\u spider(self,spider):

您可以使用此

from scrapy import signals
from scrapy.xlib.pydispatch import dispatcher

class MySpider(CrawlSpider):
    def __init__(self):
        dispatcher.connect(self.spider_closed, signals.spider_closed)

    def spider_closed(self, spider):
      # second param is the instance of the spider about to be closed.
      #  Write the mail sending part here
如果要在邮件中包含已删除的数据,请在pipelines.py文件中编写脚本

class MyPipeline(Pipeline):
    spider = None

    def process_item(self, item, spider):
        if spider.name == 'Name of the spider':
            # Use the data and send the mail from here
        return item