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
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.
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:
data_collection
:
cd data_collection
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:
/querido-diario
:
source .venv/bin/activate
data_collection
:
cd data_collection
scrapy list
scrapy crawl <nome_do_raspador> //exemplo: scrapy crawl ba_acajutiba
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.
-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>
-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
-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.