Closed anapaulagomes closed 3 years ago
Bastaria importar e adicionar o ItemCountMonitor
no monitors.py? https://github.com/DadosAbertosDeFeira/maria-quiteria/blob/eb5eb5ec67c90123e93946934fa68d15cd62a414/scraper/monitors.py#L4-L11
Pelo o que entendi, esse monitor serve pra verificar o número mínimo de itens para coleta. Com o ItemCountMonitor
temos que especificar o SPIDERMON_MIN_ITEMS
(https://spidermon.readthedocs.io/en/latest/monitors.html#spidermon.contrib.scrapy.monitors.ItemCountMonitor). Para esse projeto não faz sentido porque nem sempre temos itens coletados todos os dias. Por exemplo: a Câmara tem sessões 3 vezes por semana. Então não teremos uma ata por dia. O mesmo para licitações, diários oficiais etc.
Acredito que aqui temos que pegar o número de itens coletados nas STATS
do Scrapy e adicionar no relatório do Spidermon para o Telegram.
Entendi! Daria pra criar um extensão e pegar o item_scraped_count
e depois jogar pro spidermon.
@anapaulagomes É possível pegar a mensagem que vai ser enviado pro Telegram sem precisar configurar um bot?
É sim, @Urahara. Você precisa configurar a variável de ambiente SPIDERMON_TELEGRAM_FAKE=True
(se não me engano é padrão no .env.example
). Ao executar um spider ou o comando python manage.py crawl
a mensagem do Telegram será postada no terminal.
A mensagem do Telegram é essa embaixo de FINISHED ACTIONS
.
tks! vou dar uma olhada.
Oi, @Urahara! Você está trabalhando nessa issue?
Atualmente utilizamos o spidermon para verificar o formato dos dados coletados e se houve algum erro. Esse relatório, apesar de informar corretamente a respeito da execução e do erro, traz poucos detalhes.
Devemos adicionar no relatório de execução quantos itens foram coletados em cada spider. Dessa forma saberemos quando um spider é executado com sucesso e tem algum tempo sem coletar nenhum item, por exemplo.
Um exemplo disso pode ser encontrado no Querido Diário.