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

Adiciona novos 10 raspadores do Paraná #1167

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

trevineju
Copy link
Member

AO ABRIR uma Pull Request de um novo raspador (spider), marque com um X cada 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:

  • O layout não se parece com nenhum caso da lista de layouts padrão
  • É um layout padrão e esta PR adiciona a spider base do padrão ao projeto junto com alguns municípios que fazem parte do padrão.
  • É um layout padrão e todos os municípios adicionados usam a classe de spider base adequada para o padrão.

Código da(s) spider(s)

  • O(s) raspador(es) adicionado(s) tem os atributos de classe exigidos.
  • O(s) raspador(es) adicionado(s) cria(m) objetos do tipo Gazette coletando todos os metadados necessários.
  • O atributo de classe start_date foi preenchido com a data da edição de diário oficial mais antiga disponível no site.
  • Explicitar o atributo de classe end_date não se fez necessário.
  • Não utilizo custom_settings em meu raspador.

Testes

  • Uma coleta-teste da última edição foi feita. O arquivo de .log deste teste está anexado na PR.
  • Uma coleta-teste por intervalo arbitrário foi feita. Os arquivos de .loge .csv deste teste estão anexados na PR.
  • Uma coleta-teste completa foi feita. Os arquivos de .log e .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.

Descrição

<Descreva o seu Pull Request informando a issue (caso exista) que está sendo solucionada ou uma descrição do código apresentado>

@marcospscruz
Copy link
Contributor

Olá, peguei esse pull request para testar antes da integração com o site do Querido Diário mas não conseguia rodar o raspador. Para todas as cidades, aparecia o erro:

ModuleNotFoundError: No module named 'gazette.spiders.base.atende_v2'

Fui investigar e não há nenhum arquivo chamado "atende_v2" dentro do caminho "gazette/spiders/base". O nome mais próximo é "atende_layoutdois" que possui uma classe chamada "BaseAtendeL2Spider" mas os raspadores estão herdando da classe "BaseAtendeV2Spider". Editei o arquivo dos raspadores para tentar usar a classe "BaseAtendeL2Spider" contida no "atende_layoutdois" e consegui iniciar a coleta dos pdfs. Estou avisando para o caso de mais alguém ter o mesmo problema.

@trevineju
Copy link
Member Author

boa, @marcospscruz! A branch estava desatualizada, de fato!

@marcospscruz
Copy link
Contributor

boa, @marcospscruz! A branch estava desatualizada, de fato!

Vou clonar o projeto novamente e refazer a coleta.

@marcospscruz
Copy link
Contributor

O raspador de Araucária dá erro e não faz o download de nenhum arquivo. Segue o log:
log_pr_araucaria.txt

@marcospscruz
Copy link
Contributor

Em relação à Apucarana, seguem os logs e arquivos:

log_pr_apucarana_ultima_edicao.txt
pr_apucarana_completa.csv
log_pr_apucarana_completa.txt
pr_apucarana_intervalo_maio_24.csv
log_pr_apucarana_intervalo_maio_24.txt

Nos logs da coleta completa, consta um erro mas não consegui localizar o que seria. Aparecem alguns warnings de arquivo vazio mas ao acessar os links os arquivos realmente estavam vazios. Na coleta de intervalo arbitrário aparecem alguns erros de integridade do SQLite porque esses arquivos já haviam sido baixados na coleta completa.

@marcospscruz
Copy link
Contributor

@marcospscruz
Copy link
Contributor

@marcospscruz
Copy link
Contributor

@marcospscruz
Copy link
Contributor

@marcospscruz
Copy link
Contributor

@marcospscruz
Copy link
Contributor

@marcospscruz
Copy link
Contributor

@marcospscruz
Copy link
Contributor

marcospscruz commented Aug 3, 2024

Boa noite, pessoal. Recentemente eu estive numa correria e não tive tempo de levar esse pull request adiante. Como os logs estão antigos vou refazer as coletas. Começando por Apucarana, seguem os arquivos:

Log última edição: log_apucarana.txt
Log intervalo 15/06/24 - 15/07/24: log_apucarana_intervalo_jun_jul_24.txt
CSV intervalo 15/06/24 - 15/07/24: pr_apucarana_intervalo_jun_jul_24.csv
CSV coleta completa: pr_apucarana_completa2.csv
Log coleta completa: log_apucarana_completa2.txt

Minhas observações: Em relação à coleta da última edição e do intervalo parece estar tudo OK. Já em relação à coleta completa, ocorreu um erro:

FAIL: Item Validation Monitor/test_stat_monitor

Traceback (most recent call last):
File "/home/marcos/Documentos/querido-diario/.venv/lib/python3.8/site-packages/spidermon/contrib/scrapy/monitors/base.py", line 225, in test_stat_monitor
assertion_method(
AssertionError: Expecting 'spidermon/validation/fields/errors' to be '<=' to '0.0'. Current value: '14'

Não sei dizer qual é a gravidade deste erro.

Analisando o arquivo CSV, percebi que a primeira edição aparece com a numeração 1 quando deveria ser um número bem maior mas isso parece ser um erro da pessoa que fez o upload do arquivo. Em determinados momentos as edições pulam alguns números mas olhando o site também tem esses intervalos. Há algumas edições com mais de um arquivo na planilha. Para registro fiz uma lista dos números de edições faltantes e duplicadas:

Edições faltantes: 9198, 9203, 9230, 9240, 9248, 9249, 9254, 9256, 9282, 9287, 9292, 9317, 9331, 9340, 9343, 9359, 9362, 9367, 9376, 9381, 9388, 9389, 9391, 9393, 9400, 9411, 9414, 9418, 9425, 9427, 9428, 9437, 9442, 9445, 9447, 9460, 9463, 9464, 9465, 9480, 9489, 9494, 9499, 9507, 9533, 9537, 9543, 9550, 9559, 9594, 9597, 9610, 9633, 9635, 9639, 9640, 9645, 9646, 9651, 9653, 9654, 9657, 9662, 9669-9686, 9689, 9690, 9693, 9695, 9696, 9698, 9618, 9733, 9734, 9752, 9755, 9769, 9777
Duplicadas: 9234(2), 9252(3), 9280(2), 9339(2), 9349(2), 9439(2), 9562(2), 9701(2)

Favor dar um feedback se a análise está correta porque é a primeira vez que a estou fazendo.

@trevineju
Copy link
Member Author

trevineju commented Aug 7, 2024

Boa noite, pessoal. Recentemente eu estive numa correria e não tive tempo de levar esse pull request adiante.

Beleza, @marcospscruz! Obrigada!

FAIL: Item Validation Monitor/test_stat_monitor

Traceback (most recent call last): File "/home/marcos/Documentos/querido-diario/.venv/lib/python3.8/site-packages/spidermon/contrib/scrapy/monitors/base.py", line 225, in test_stat_monitor assertion_method( AssertionError: Expecting 'spidermon/validation/fields/errors' to be '<=' to '0.0'. Current value: '14'

Na seção de estatísticas do coleta completa tem: 'item_dropped_count': 14. Então esses 14 erros foram documentos que deveriam ter sido coletados e não foram. Se procurarmos pelo termo dropped no log aparecem esses casos. O primeiro é:

2024-08-03 14:57:10 [scrapy.pipelines.files] WARNING: File (empty-content): Empty file from <GET https://apucarana.atende.net/atende.php?rot=54002&aca=737&processo=download&parametro=%7B%22codigo%22%3A%22459%22%2C%22hash%22%3A%22B875D2AC4046B36CEA797C9A8FFB6D1BA5925FCC%22%7D&cidade=padrao > referred in : no-content
2024-08-03 14:57:10 [scrapy.core.scraper] WARNING: Dropped: Validation failed!
{'_validation': defaultdict(<class 'list'>, {'files': ['Field too short']}),
'date': '2024-02-06',
'edition_number': '9698',
'file_urls': ['https://apucarana.atende.net/atende.php?rot=54002&aca=737&processo=download&parametro=%7B%22codigo%22%3A%22459%22%2C%22hash%22%3A%22B875D2AC4046B36CEA797C9A8FFB6D1BA5925FCC%22%7D&cidade=padrao'],
'files': [],
'is_extra_edition': False,
'power': 'executive_legislative',
'scraped_at': '2024-08-03T17:56:52.264397Z',
'territory_id': '4101408'}

Ou seja, está denunciando que tentou obter o arquivo do dia 6/fev/24 e não conseguiu pois o arquivo estava vazio. Clicando no link que tem no log e navegando no site da prefeitura manualmente até essa data, realmente está vazio.

Mas isso é verificar 1 de 14 ocorrências de "item abandonado", teoricamente teria que olhar os outros 13 pois podem ter sido abandonados por motivos diferentes, não só pelo arquivo estar vazio. Mas já pesquisei por File (empty-content) também e são exatamente 14 ocorrências. Então sabemos que são todos os casos.

Não sei dizer qual é a gravidade deste erro.

Não é grave. Não temos como coletar um arquivo vazio mesmo. Deve ter sido cadastro errado ou algum erro no site.

Analisando o arquivo CSV, percebi que a primeira edição aparece com a numeração 1 quando deveria ser um número bem maior mas isso parece ser um erro da pessoa que fez o upload do arquivo.

Sim, isso. Também não temos o que fazer.

Em determinados momentos as edições pulam alguns números mas olhando o site também tem esses intervalos. Há algumas edições com mais de um arquivo na planilha. Para registro fiz uma lista dos números de edições faltantes e duplicadas:

Edições faltantes: 9198, 9203, 9230, 9240, 9248, 9249, 9254, 9256, 9282, 9287, 9292, 9317, 9331, 9340, 9343, 9359, 9362, 9367, 9376, 9381, 9388, 9389, 9391, 9393, 9400, 9411, 9414, 9418, 9425, 9427, 9428, 9437, 9442, 9445, 9447, 9460, 9463, 9464, 9465, 9480, 9489, 9494, 9499, 9507, 9533, 9537, 9543, 9550, 9559, 9594, 9597, 9610, 9633, 9635, 9639, 9640, 9645, 9646, 9651, 9653, 9654, 9657, 9662, 9669-9686, 9689, 9690, 9693, 9695, 9696, 9698, 9618, 9733, 9734, 9752, 9755, 9769, 9777

Também não temos o que fazer aqui. Para os próximo casos de análise, pode adotar que não precisa informar cada edição que faltar pontualmente -- isso é algo que conseguimos recuperar por meio que pesquisa no banco de dados do QD. Só informa se forem edições sequenciais por muito tempo, deixando buracos de semanas ou meses. Isso chama atenção por ser mais grave, um município sem disponibilizar DO por muito tempo. Aí a avaliamos, dentro da OKBR, cobrar o município para disponibilizar esse buraco todo que falta.

Duplicadas: 9234(2), 9252(3), 9280(2), 9339(2), 9349(2), 9439(2), 9562(2), 9701(2)

Olhei só os dois primeiros casos, mas não parece exatamente duplicado. Uma é a edição normal e outras são suplementos. Então tudo certo

Screenshot from 2024-08-07 18-55-07
Screenshot from 2024-08-07 18-55-46

Favor dar um feedback se a análise está correta porque é a primeira vez que a estou fazendo.

Tá excelente, Marcos. É por aí mesmo. Obrigada pelo cuidado! 💯 Qualquer coisa, segue perguntando ;)

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

Successfully merging this pull request may close these issues.

None yet

2 participants