Open AlexJBSilva opened 12 months ago
@AlexJBSilva muito obrigada pela PR!
Sei que ainda estava em rascunho, porém, tendo em vista as enchentes no Rio Grande do Sul, fizemos um esforço de priorizar a adição de municípios de lá e esta PR tem vários. Por isso, tomei a liberdade de seguir a partir de onde você parou.
Aqui você adiciona duas novas classes base e, como o "Layout 2" estava mais desenvolvido (você até anexou testes, enquanto o "Layout 1" não) e tem uma cobertura maior de municípios do RS, foquei nele.
Fiz uma PR (#1145) que puxa suas contribuições daqui e as finaliza lá. Optei por fazer isso e não revisar aqui pois, como disse acima, queria reduzir o escopo pra um sistema só por vez sem jogar fora o que você já tinha começado aqui (não queria perder o "Layout 1" e os demais municípios que já estão aqui).
Como acabei revisando vou deixar alguns feedbacks, mas mesmo eu não tenho certeza se precisa (visto que ainda era rascunho, pode ser só que você ia ajustar depois)
Não precisa deixar um município por commit quando for essa situação de municípios padronizados. Pode adicionar vários em um só.
Sei que não tínhamos outro caso para você se espelhar, mas não deixamos duas classes em um único arquivo. Adotei atende_layoutdois.py
na minha revisão. Confesso que não sei se é um bom nome pro arquivo em si, porém ficou separado em dois (deixando sugestivo que o outro vai ser atende_layoutum.py
), que é o que precisa.
Você estava deixando parâmetros de requisição hardcoded na URL, como em
/atende.php?rot=54015&aca=101&ajax=t&processo=loadPluginDiarioOficial
e ¶metro=%7B%22codigoPlugin%22%3A1,%22filtroPlugin%22%3A%7B%22pagina%22%3A%22{page}%22%7D%7D"
Costumamos a usar o parâmetro formdata + requisição scrapy.FormRequest nesses casos.
(e mais importante) Estava caminhando muito bem ❤️ Fora alguns detalhes de organização (tanto é que meus 2 dos 3 feedbacks acima eram mais questão de organização mesmo), as ordem das requisições e as lógicas de coleta dos metadados tavam ótimas.
if
s de verificações mas não cai em nenhum caso que precisasse, por isso tirei. Porém, eu foquei em 10 municípios e você tava adicionando 30. Pode ser algum caso que ainda iria aparecer, mas podemos ter uma dinâmica incremental, de ir adicionando melhorias na base conforme formos cobrindo mais casos. Muito obrigada pela contribuição
Checklist - Novo spider
start_date
eend_date
definidos) ao menos uma vez e os dados retornados estavam corretos.log_count/ERROR
igual a zero).start_date
no seu spider com a data do Diário Oficial mais antigo disponível na página da cidade.Descrição
Adiciona o spider base para o sistema replicável Atende, e os spiders derivados para as cidades com D.O.s nesse sistema. Através do mapeador ATENDE (PR #1043), foram identificadas 34 cidades com Diários Oficiais disponíveis.
Esse sistema apresenta 2 layouts de página: layout
Tipo 1
e layoutTipo 2
.Tipo 1
: 4 cidades3552403SumaréSPSumaré já possui um spider funcional e não precisará de um novo spider, pois os diários no sistema Atende (layout Tipo 1) não possuem todos os metadados (inclusive data de publicação).
Tipo 2
: 30 cidadesDos testes realizados com Araucária, Campo Mourão e Gravataí:
Extra: Automatizando a criação de Spiders derivados.
Seguindo a dica da @trevineju, fiz o script abaixo para criar os spiders utilizando o arquivo
cidades_atende_t2.csv
com as infomações de configuração:Para usar:
querido-diario/data_collection/data
;cd querido-diario/data_collection/data
e execute o scriptpython script.py
.