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