📰 Diários oficiais brasileiros acessíveis a todos | 📰 Brazilian government gazettes, accessible to everyone.
Português (BR) | English (US)
Querido Diário
Dentro do ecossistema do Querido Diário, este repositório é o responsável pela tarefa de raspagem dos sites publicadores de diários oficiais.
Conheça mais sobre as tecnologias e a história do projeto no site do Querido Diário
Sumário
- Dicas de execuçãoComo contribuir
Agradecemos por considerar contribuir com o Querido Diário! :tada:
Você encontra como fazê-lo no CONTRIBUTING.md!
Além disso, consulte a documentação do Querido Diário para te ajudar.
Ambiente de desenvolvimento
Você precisa ter Python (+3.0) e o framework Scrapy instalados.Os comandos abaixo preparam o ambiente em sistema operacional Linux. Eles consistem em criar um ambiente virtual de Python, instalar os requisitos listados em requirements-dev e a ferramenta para padronização de código pre-commit.
console
python3 -m venv .venv
source .venv/bin/activate
pip install -r data_collection/requirements-dev.txt
pre-commit install
A configuração em outros sistemas operacionais está disponível em "como configurar o ambiente de desenvolvimento", incluindo mais detalhes para quem deseja contribuir com o desenvolvimento do repositório.
Template para raspadores
Ao invés de começar um arquivo de raspador do zero, você pode inicializar um arquivo de código de raspador já no padrão do Querido Diário, a partir de um template. Para isso, faça:
- Vá para o diretório
data_collection:
cd data_collection
- Acione o template:
scrapy genspider -t qdtemplate <ufnomedo_municipio> <https://sitedomunicipio...>
Um arquivo ufnomedo_municipio.py será criado no diretório spiders, com alguns campos já preenchidos. O diretório é organizado por UF, lembre-se de mover o arquivo para o diretório adequado.
Como executar
Para experimentar a execução de um raspador já integrado ao projeto ou testar o que esteja desenvolvendo, siga os comandos:- Se ainda não o fez, ative o ambiente virtual no diretório
/querido-diario:
console
source .venv/bin/activate
- Vá para o diretório
data_collection:
cd data_collection
- Verifique a lista de raspadores disponíveis:
scrapy list
- Execute um raspador da lista:
scrapy crawl <nomedoraspador> //exemplo: scrapy crawl ba_acajutiba
- Os diários coletados na raspagem serão salvos no diretório
data_collection/data
Dicas de execução
Além dos comandos acima, o Scrapy oferece outros recursos para configurar o comando de raspagem. Os recursos a seguir podem ser usados sozinhos ou combinados.- Limite de data
-a seguida de:
start=AAAA-MM-DD: definirá a data inicial de coleta de diários.
scrapy crawl <nomedoraspador> -a start=<AAAA-MM-DD> end=AAAA-MM-DD: definirá a data final de coleta de diários. Caso omitido, assumirá a data do dia em que está sendo executado. scrapy crawl <nomedoraspador> -a end=<AAAA-MM-DD>
- Arquivo de log
-s seguida de:
LOGFILE=log<nomedomunicipio>.txt: definirá o arquivo para armazenar as mensagens de log.
scrapy crawl <nomedoraspador> -s LOGFILE=log<nomedomunicipio>.txt
- Tabela de raspagem
-o seguida de um nome para o arquivo.
scrapy crawl <nomedoraspador> -o <nomedomunicipio>.csv
Solução de problemas
Confira o arquivo de solução de problemas para resolver os problemas mais frequentes com a configuração do ambiente do projeto.Comunidade
Ingresse em nosso canal de comunidade para trocas sobre os projetos, dúvidas, pedidos de ajuda com contribuição e conversar sobre inovação cidadã em geral.
Agradecimentos
Este projeto é mantido pela Open Knowledge Brasil e possível graças às comunidades técnicas, às pessoas voluntárias e doadoras financeiras, além de universidades parceiras, empresas apoiadoras e financiadoras.Conheça quem apoia o Querido Diário.
Open Knowledge Brasil
A Open Knowledge Brasil é uma organização da sociedade civil sem fins lucrativos, cuja missão é utilizar e desenvolver ferramentas cívicas, projetos, análises de políticas públicas, jornalismo de dados para promover o conhecimento livre nos diversos campos da sociedade.
Todo o trabalho produzido pela OKBR está disponível livremente.
Documentação completa
Aqui está uma lista completa de toda a documentação disponível na pastadocs/:
- Código de Conduta | Código de Conduta (EN)
- Guia de Contribuição | Guia de Contribuição (EN)
- Suporte | Suporte (EN)
- Solução de Problemas | Solução de Problemas (EN)
Licença
Este projeto está licenciado sob a Licença MIT.