У меня вопрос
Когда я запускаю 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):
         ......

Может кто-нибудь дать мне направление. Спасибо.

2
user2492364 27 Авг 2014 в 09:30
Возможно, вы захотите настроить сервер scrapyd на своем удаленном устройстве. Это даст вам полный доступ ко всем журналам, а также хороший API для планирования пауков и обновления вашего проекта. Я использовал его, и он очень прост в настройке и удобен в использовании.
 – 
rocktheartsm4l
28 Авг 2014 в 03:19

1 ответ

Лучший ответ

Вы должны добавить расширение в свой проект и свой код там под closed_spider

Расширения Scrapy

И добавьте свое расширение в свой settings.py, например

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

}

А также вы можете посмотреть этот источник

Надеюсь, вы получите свое решение.

0
Tasawer Nawaz 27 Авг 2014 в 14:37