Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 1 commit into from
Nov 21, 2023

Conversation

rennerocha
Copy link
Collaborator

  • Spider fufnciona localmente, mas não funciona na Scrapy Cloud. Habilitando o Smart Proxy para evitar problemas de geolocalização
  • Ajuste de URL inicial para usar HTTPS ao invẽs de HTTP
  • Substituir mẽtodos antigos (extract() e extract_first()) por get() e getall(), considerados o padrão do Scrapy

@rennerocha rennerocha added bug Algo não está funcionando production Esse problema afeta o que está em produção labels Nov 21, 2023
@trevineju
Copy link
Member

trevineju commented Nov 21, 2023

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
Copy link
Member

ogecece commented Nov 21, 2023

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

- Spider fufnciona localmente, mas não funciona na Scrapy Cloud.
  Habilitando o Smart Proxy para evitar problemas de geolocalização
- Ajuste de URL inicial para usar HTTPS ao invẽs de HTTP
- Substituir mẽtodos antigos (extract() e extract_first()) por get() e
  getall(), considerados o padrão do Scrapy
Copy link
Member

@ogecece ogecece left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Enfim. Compliquei os testes aqui mais do que precisava, porém, tá tudo ok.

Testei aqui a branch no scrapy cloud e rodou normal, com e sem proxy. Acho que o problema estava no file_urls como uma tupla mais do que qualquer coisa.

Vou mesclar sem o proxy então.

@ogecece
Copy link
Member

ogecece commented Nov 21, 2023

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

@ogecece ogecece merged commit d35f6a4 into okfn-brasil:main Nov 21, 2023
1 check passed
@trevineju
Copy link
Member

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Algo não está funcionando production Esse problema afeta o que está em produção
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants