okfn-brasil / querido-diario

📰 Diários oficiais brasileiros acessíveis a todos | 📰 Brazilian government gazettes, accessible to everyone.
https://queridodiario.ok.org.br/
MIT License
1.09k stars 403 forks source link

Problema na execução do scrapy #1299

Closed sheory closed 1 week ago

sheory commented 1 week ago

Tentei rodar o comando abaixo e acabei tendo o erro do arquivo anexado. scrapy crawl sp_avare --logfile=logfile.log

logfile.log

trevineju commented 1 week ago

Eu criei um novo ambiente virtual, segui os passos de configuração do README, tentei executar o mesmo raspador scrapy crawl sp_avare e tive o mesmo erro também

2024-10-07 18:52:45 [scrapy.core.engine] INFO: Spider opened 2024-10-07 18:52:45 [gazette.database.models] INFO: Populating 'territories' table - Please wait! 2024-10-07 18:52:45 [scrapy.core.engine] INFO: Closing spider (shutdown) 2024-10-07 18:52:45 [scrapy.utils.signal] ERROR: Error caught on signal handler: <bound method CoreStats.spider_closed of <scrapy.extensions.corestats.CoreStats object at 0x7f990395b790>> Traceback (most recent call last): File "/home/trevo/Desktop/Juliana/Codigo/OKBR/querido-diario/.socorro/lib/python3.10/site-packages/scrapy/crawler.py", line 160, in crawl yield self.engine.open_spider(self.spider, start_requests) TypeError: keywords must be strings

Tentamos outros raspadores e seguimos com o mesmo problema

trevineju commented 1 week ago

@jjpaulo2, @sheory comentou que você também teve que lidar com erros. Por acaso foi esse?

ayharano commented 1 week ago

Vendo o traceback, precisaria ver o código do Scrapy para confirmar de onde esse TypeError surge

Vi o Release Notes do Scrapy e, apesar de não encontrar nenhuma menção, talvez fosse o caso de atualizar do 2.11.0 para 2.11.2, regerando a partir do pip-tools usando Python 3.10

ogecece commented 1 week ago

Como a gente não havia mexido em dependências e o projeto estava funcionando normal, a opção que parecia mais sensata era que algum commit recente havia introduzido bug.

Testando os últimos commits (com ambiente python 3.10 totalmente limpo, virtualenv zerado e sem banco) encontrei o problema no commit 79cee066. Daí vi que a linha 5583 do territories.csv apresenta uma vírgula no campo name e isso impede o carregamento do banco de territories e de spiders. Vou subir um fix

P.S. o erro tá bem zoado mesmo... Mas provavelmente pq ocorreu no .open_spider() do SQLDatabasePipeline ao chamar initialize_database(), que é chamado por meio de signal (só chutando aqui pq não parei pra entender mesmo).

ogecece commented 1 week ago

Corrigido por 93322b5

trevineju commented 1 week ago
jjpaulo2 commented 1 week ago

Cheguei tarde por aqui kkkk

De fato, @sheory e @trevineju eu passei por alguns problemas no setup do projeto, mas foram por causa do Spidermon. Como estava rodando localmente apenas pra validar a coleta, preferi só desativar ele na minha máquina.