1

スパイダーが閉じたときに自分にメールを送信したい
このソースを見ると、メールを受け取ることができます。failure.getTraceback()しかし、スパイダーが間違っていると書くことがわかりました

ソースコードの一部:

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()、ファイルに書き込むために使用されます.スパイダーを実行した後、それを開いて、何か問題があるかどうかを確認します.このファイルをメールに送信するか、ファイル内の「テキスト」だけで送信できるか

誰かがこれを行う方法を教えてもらえますか? ありがとうございました。

4

1 に答える 1

0

ファイルの保存に使用できる設定は 2 つありLOG_FILEますLOG_LEVEL--logfile=FILEこれら 2 つには、コマンド ライン引数--loglevel=LEVEL, -L LEVEL.

電子メールを送信するために、 によって使用される というヘルパーがありStatsMailerますMailSender。このヘルパーを使用するには、SMTP 接続の作成に必要なすべての情報をインスタンス化する必要があり、メソッドsendは電子メールの送信に必要なすべての情報を受け入れます。メソッドには、3 つの要素を持つタプルのタプルであるsend引数があります。attachs((<name>, <mime_type>, <file instance>), )

于 2014-08-28T13:50:43.767 に答える