2014-08-28 40 views
1

我想在蜘蛛關閉時向我發送電子郵件
我看這source,我可以收到郵件。但我發現它會寫failure.getTraceback()當蜘蛛獲取源代碼的錯誤如何將ScrapyFileLogObserver文件發送到我的電子郵件

部分:

def spider_error(self, failure, response, spider): 
    self.files[spider.name + '.log'].write(failure.getTraceback()) 
    self.num_errors += 1 

但我想讓它可以在控制檯日誌發送到我的郵箱是這樣的:

2014-08-28 00:30:33+0000 [scrapy] INFO: Scrapy 0.24.2 started (bot: shopping) 
2014-08-28 00:30:33+0000 [scrapy] INFO: Optional features available: ssl, http11, boto, django 
2014-08-28 00:30:34+0000 [scrapy] WARNING: can't find the images!: http://www.example.com 
2014-08-28 00:30:34+0000 [email] ERROR: Spider error processing <GET http://www.example.com 

我需要這個數,因爲如果我得到的WARNING: can't find the images!: http://www.example.com,我可以運行其它蜘蛛拿到錯過圖像

現在我的方法是使用ScrapyFileLogObserver(open("spider.log", 'w'), level=log.INFO).start()寫在一個文件。運行蜘蛛後,我打開它來檢查是否somtthing wrong.I不知我是否可以發送此文件到我的電子郵件或只是文件中的文本

有人可以教我如何做這個?謝謝。

回答

0

有2個設置可以用來保存文件:LOG_FILELOG_LEVEL;這2個也有一個命令行參數--logfile=FILE,--loglevel=LEVEL, -L LEVEL

現在爲了發送電子郵件,StatsMailer使用了一個幫手,名爲MailSender。爲了使用此幫助程序,您必須實例化創建SMTP連接所需的所有信息,並且方法send接受發送電子郵件所需的所有信息。在方法send上,您會發現參數attachs,它是具有3個元素((<name>, <mime_type>, <file instance>),)的元組的元組。

相關問題