Português (BR) | English (US)
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
- Como contribuir
- Ambiente de desenvolvimento
- Template para raspadores
- Como executar
- Solução de problemas
- Suporte
- Agradecimentos
- Open Knowledge Brasil
- Licença
Agradecemos por considerar contribuir com o Querido Diário! 🎉
Você encontra como fazê-lo no CONTRIBUTING.md!
Além disso, consulte a documentação do Querido Diário para te ajudar.
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
.
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.
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 <uf_nome_do_municipio> <https://sitedomunicipio...>
Um arquivo uf_nome_do_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.
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
:
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 <nome_do_raspador> //exemplo: scrapy crawl ba_acajutiba
- Os diários coletados na raspagem serão salvos no diretório
data_collection/data
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
Ao executar o item 4, o raspador coletará todos os diários oficiais do site publicador daquele município. Para execuções menores, utilize a flag de atributo-a
seguida de:
start_date=AAAA-MM-DD
: definirá a data inicial de coleta de diários.
scrapy crawl <nome_do_raspador> -a start_date=<AAAA-MM-DD>
end_date=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 <nome_do_raspador> -a end_date=<AAAA-MM-DD>
- Arquivo de log
É possível enviar o log da raspagem para um arquivo ao invés de deixá-lo no terminal. Isto é particularmente útil quando se desenvolve um raspador que apresenta problemas e você quer enviar o arquivo de log no seu PR para obter ajuda. Para isso, use a flag de configuração-s
seguida de:
LOG_FILE=log_<nome_do_municipio>.txt
: definirá o arquivo para armazenar as mensagens de log.
scrapy crawl <nome_do_raspador> -s LOG_FILE=log_<nome_do_municipio>.txt
- Tabela de raspagem
Também é possível construir uma tabela que lista todos os diários e metadados coletados pela raspagem, ficando mais fácil de ver como o raspador está se comportando. Para isso, use a flag de saída-o
seguida de um nome para o arquivo.
scrapy crawl <nome_do_raspador> -o <nome_do_municipio>.csv
Confira o arquivo de solução de problemas para resolver os problemas mais frequentes com a configuração do ambiente do projeto.
Ingresse em nosso canal de comunidade para trocas sobre os projetos, dúvidas, pedidos de ajuda com contribuição e conversar sobre inovação cívica em geral.
Este projeto é mantido pela Open Knowledge Brasil e possível graças às comunidades técnicas, às Embaixadoras de Inovação Cívica, às pessoas voluntárias e doadoras financeiras, além de universidades parceiras, empresas apoiadoras e financiadoras.
Conheça quem apoia o Querido Diário.
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.
Código licenciado sob a Licença MIT.