feat: adiciona raspador para São Sebastião/SP - #1471
Open
maia-andre wants to merge 2 commits into
Open
Conversation
O site da prefeitura (doem.asp) mudou desde a abertura do PR okfn-brasil#1075: - as edições passaram a ser listadas por ano (doem.asp?Ano=AAAA) e a página sem parâmetro mostra apenas o ano corrente, então o raspador agora faz uma requisição por ano dentro do intervalo de coleta; - o HTML mudou de `li.document h4.document-title a` para cards `div.doem-card`, com número (h4), data (p) e link (a.doem-btn). Também aplica a sugestão da revisão de mover a extração para dentro do `if` de intervalo de datas e passa a ler data e número de edição do texto exibido no card, em vez do nome do arquivo PDF.
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
AO ABRIR uma Pull Request de um novo raspador (spider), marque com um
Xcada um dos items da checklist abaixo. Caso algum item não seja marcado, JUSTIFIQUE o motivo.Layout do site publicador de diários oficiais
Marque apenas um dos itens a seguir:
Código da(s) spider(s)
custom_settingsem meu raspador.Testes
.logdeste teste está anexado na PR..loge.csvdeste teste estão anexados na PR..loge.csvdeste teste estão anexados na PR.Verificações
.csvgerados pela minha coleta conforme a documentação não encontrando problemas..loggerados pela minha coleta conforme a documentação não encontrando problemas.Descrição
Resolve #468. Relacionado a #1071.
Continuação do PR #1075, de @almeidadm, que autorizou a retomada do trabalho (comentário). O commit original foi mantido com a autoria dele; o segundo commit adapta o raspador ao estado atual do site e do projeto.
Município: São Sebastião/SP (IBGE 3550704) — fonte: https://www.saosebastiao.sp.gov.br/doem.asp
O que mudou em relação ao PR #1075
data_collection/paraquerido_diario_raspadores/(reorganização do repositório).doem.asp?Ano=AAAA, de 2017 até o ano corrente) e a página sem parâmetro mostra só o ano atual. O raspador faz uma requisição por ano dentro do intervalo de coleta, usandoyearly_sequence, e usaasync def start()conforme o padrão atual do projeto.div.doem-card; a data e o número da edição são lidos do texto exibido no card (peh4), e não mais do nome do arquivo PDF.ifde intervalo de datas).Sobre os metadados
power="executive_legislative": a Câmara Municipal publica atos próprios (extratos contratuais, por exemplo) no mesmo diário.is_extra_edition=False: o site não sinaliza edições extras. Há dias com duas edições (numeração sequencial), mas sem qualquer marcação de "extra".Coletas de teste (arquivos
.loge.csvanexados em comentário logo abaixo)-a start=2026-09-02→ 1 edição, 2 requisições, sem erros.-a start=2025-12-01 -a end=2026-01-31→ 39 edições, 41 requisições, sem erros; conferido item a item contra a listagem do site.DOEM_029_20170522.pdf, que responde 404 (o arquivo correto existe emDOEM_030_20170522.pdf, mas o site não linka para ele). Esse 404 é o únicoERRORdo log e é o motivo de o monitor de erros do Spidermon ter falhado. Houve 4 timeouts de conexão recuperados por retry, e 5 PDFs acima de 32 MB (o maior com 149 MB) geraram apenas avisos de tamanho.UNIQUE constraint failed) porque o site publica o mesmo PDF duas vezes, com nomes de arquivo diferentes, para 21/02/2022; o conteúdo é idêntico (mesmo checksum), então o banco rejeita a cópia. As duas linhas aparecem no.csv.