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

Fix - Spider de Caçapava-SP [Fixes #1131] #1274

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

jjpaulo2
Copy link
Contributor

Testes

  • Uma coleta-teste por intervalo arbitrário foi feita. Os arquivos de .loge .csv deste teste estão anexados na PR.

Verificações

  • Eu experimentei abrir alguns arquivos de diários oficiais coletados pelo meu raspador e verifiquei eles conforme a documentação não encontrando problemas.
  • Eu verifiquei os arquivos .csv gerados pela minha coleta conforme a documentação não encontrando problemas.
  • Eu verifiquei os arquivos de .log gerados pela minha coleta conforme a documentação não encontrando problemas.

Anexos

scrapy crawl sp_cacapava -a start_date=2024-09-01 -a end_date=2024-09-19 -s LOG_FILE=sp_cacapava.log -o sp_cacapava.csv

Descrição

Faltava apenas chamar o .extract() para fazer o evaluate dos hrefs.

@jjpaulo2 jjpaulo2 changed the title Fix - Spider de Caçapava-SP (Fixes #1131) Fix - Spider de Caçapava-SP [Fixes #1131] Sep 21, 2024
@trevineju trevineju linked an issue Sep 22, 2024 that may be closed by this pull request
@victorfernandesraton
Copy link
Contributor

@trevineju vou pegar esssa pra rever


yield Gazette(
date=gazette_date,
edition_number=edition_number,
is_extra_edition=False,
power="executive_legislative",
file_urls=[gazette_url],
territory_id=self.TERRITORY_ID,
file_urls=gazette_url,
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Nesse caso, o objeto já é uma lista. Fiz o evalutate com .extract().

Vi que a maioria dos spiders usa sempre .extract_first() (esse só retorna um registro). Caso seja o padrão, ou o recomendável no projeto, posso alterar sem problemas.


yield Gazette(
date=gazette_date,
edition_number=edition_number,
is_extra_edition=False,
power="executive_legislative",
file_urls=[gazette_url],
territory_id=self.TERRITORY_ID,
file_urls=gazette_url,
Copy link
Member

Choose a reason for hiding this comment

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

Caso seja o padrão, ou o recomendável no projeto, posso alterar sem problemas.

Tem alguns raspadores bem antigos que ainda usam .extract_first() mesmo, mas temos passado a usar .get() e .getall() apenas, pq o próprio Scrapy fez essa mudança. Poderia atualizar a PR, @jjpaulo2?

Seria até uma boa contribuição essa de padronizar a base de código. Vou deixar uma issue.

@jjpaulo2
Copy link
Contributor Author

Fiz o ajuste @trevineju. Eu não havia testado o scrapping completo dessa cidade, mas parece que ele falha para algumas datas. Isso já é esperado?

@trevineju
Copy link
Member

Fiz o ajuste @trevineju.

Show!

Eu não havia testado o scrapping completo dessa cidade, mas parece que ele falha para algumas datas. Isso já é esperado?
Não era, não.

Olhei rapidamente o log e, na linha 3124, quando começa um monte de redirect seguidos, a URL que estava sendo tentada era:

https://cacapava.sp.gov.br/diario-oficial?dataDe=27/04/2021&dataAte=23/09/2024&pagina=20&pagina=58

está com dois campos de paginação pagina=20 e pagina=58 e isso não faz sentido. Outras requisições tem essa duplicação também e dão certo. Achei estranho. Poderia seguir investigando, @jjpaulo2?

@jjpaulo2
Copy link
Contributor Author

Sigo sim @trevineju. Só dei essa olhadinha rápida. Vou tentar dar um retorno até quarta.

@jjpaulo2
Copy link
Contributor Author

@trevineju fiz um ajuste na paginação. Agora está funcionando 100%! 😄

@jjpaulo2
Copy link
Contributor Author

@trevineju fiz os ajustes mas esqueci de pedir o novo review.

@victorfernandesraton
Copy link
Contributor

@trevineju fiz um ajuste na paginação. Agora está funcionando 100%! 😄

Este log aqui aparentemente é para o raspador completo sem filtro de datas certo?
Com a correção feita, acredito que seria interessante ter tanbém os logs e csv gerado para um período aleatório

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: novo
Development

Successfully merging this pull request may close these issues.

[Manutenção] Caçapava-SP
3 participants