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.08k stars 393 forks source link

Habilita Zyte Smart Proxy em Florianópolis-SC #1039

Closed rennerocha closed 10 months ago

rennerocha commented 10 months ago
trevineju commented 10 months ago

Boa, @rennerocha. Valeu!

Confirmei que o raspador está coletando localmente (florianopolis_local.csv | florianopolis_local.txt), mas não consegui confirmar que com a modificação para incluir o smartproxy funciona também -- vi no dashboard que realmente os jobs não estão coletando mais itens.

Estou recebendo warning sobre o user-agent no header e também a validação da chave. O arquivo de log completo é este: florianopolis_viazyte.txt, mas a seguir tem uns trechos do log destacando as chaves.

2023-11-21 14:11:50 [sc_florianopolis] INFO: Collecting gazettes from 2023-10-01
2023-11-21 14:11:50 [sc_florianopolis] INFO: Collecting gazettes until 2023-11-15
[...]
 'USER_AGENT': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:108.0) '
               'Gecko/20100101 Firefox/108.0'}
2023-11-21 14:11:51 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'b3dad81'
[...]
2023-11-21 14:11:53 [scrapy_zyte_smartproxy.middleware] INFO: Using Zyte Smart Proxy Manager at http://api.zyte.com:8011 (apikey: 197bf1d)
[...]
2023-11-21 14:11:53 [scrapy_zyte_api._params] WARNING: Request <POST https://www.pmf.sc.gov.br/governo/index.php?pagina=govdiariooficial> defines header b'User-Agent', which cannot be mapped into the Zyte API customHttpRequestHeaders parameter.
[...]
2023-11-21 14:11:53 [scrapy_zyte_api.handler] ERROR: Got Zyte API error (status=401, type='/auth/key-not-found') while processing URL (https://www.pmf.sc.gov.br/governo/index.php?pagina=govdiariooficial): The authentication key is not valid or can't be matched.

Aparentemente, a Zyte está migrando o SmartProxy todo pra dentro da Zyte API (https://docs.zyte.com/zyte-api/migration/zyte/smartproxy.html#spm-migrate) e não estou mais tendo certeza de como usar.

Quanto ao WARNING, consta na parte de customHttpRequestHeaders da documentação (link) que Zyte API sends some headers automatically. Your custom headers will usually override them, but Zyte API may silently override or drop some of your custom headers to reduce the chance of a ban response. For example, the User-Agent header is always ignored in favor of an automatic value chosen by Zyte API.. Então o USER_AGENT de settings.py está sendo ignorado. Porém não deu erro aí...

Quanto ao erro mesmo, minha chave individual está certa. @ogecece poderia confirmar se a chave do Smart Proxy também?

ogecece commented 10 months ago

Demorei um pouco pra entender o real problema... acho que é o caso de forçar o ZYTE_SMARTPROXY_URL pra http://proxy.zyte.com:8011.

Vou testar aqui

ogecece commented 10 months ago

Tô na dúvida pq o log que a @trevineju executou estava usando http://api.zyte.com:8011. Alterasse o ZYTE_SMARTPROXY_URL localmente?

trevineju commented 10 months ago

sim, pq em uma parte das orientações de migração tinha que era pra mudar.