scrapy:将日志发送到电子邮件

时间:2014-08-27 05:30:53

标签: python scrapy

我有疑问 当我运行scrapy时,它将创建3个日志文件,我将打开它们以查看是否有错误 但现在我必须将我的代码推送到远程服务器 所以我想让日志消息发送到我的电子邮件

我查看文档,但仍然不知道(在哪里放这些代码或如何用我的日志编写正文)

from scrapy.mail import MailSender
mailer = MailSender()
mailer.send(to=["someone@example.com"], subject="Some subject", body="Some body", cc=["another@example.com"])

我的代码是这样的:

class ProductSpider(Spider):
    name = "shop"
    start_urls = []

    def __init__(self):
        ScrapyFileLogObserver(open("spider.log", 'w'), level=log.INFO).start()             
        ScrapyFileLogObserver(open("spider_error.log", 'w'), level=log.ERROR).start()     
        ScrapyFileLogObserver(open("spider_warning.log", 'w'), level=log.WARNING).start()  
        super(ProductSpider, self).__init__()

    def parse(self, response):
         ......

有人可以指点我。谢谢。

1 个答案:

答案 0 :(得分:0)

您必须在项目中添加扩展名,并在closed_spider

下添加代码

a Scrapy Extensions

并在settings.py中添加您的扩展程序,例如

    EXTENSIONS = {
'scrapy.contrib.corestats.CoreStats': 500,
'scrapy.webservice.WebService': 500,
'scrapy.telnet.TelnetConsole': 500,

}

您也可以查看此a source

我希望你能得到解决方案。