Scripts de scraping dos dados que serão usados no Gestão BR
Esse projeto está sendo desenvolvido usando Python 3.5. Veja instruções de instalação em seu sistema no site python.org. Se você usa Debian e derivados, basta executar:
sudo apt-get update && sudo apt-get install -y python3.5
Depois de ter o Python 3.5 instalado, você precisará instalar alguns outros pacotes utilizando o gerenciador de pacotes pip (que já é instalado por padrão junto com o Python 3.5).
Para criar o ambiente virtual, clonar o repositório e instalar as dependências execute os seguintes comandos:
sudo pip install virtualenv
git clone https://github.com/CodeForCuritiba/gestao-br-scrapers.git
cd gestao-br-scrapers
virtualenv .env
source .env/bin/activate
pip install -r requirements/development.txt
Além de todas as dependências você precisará do driver do Firefox para o Selenium (acesse o site e veja as instruções de instalação para seu sistema).
Para rodar os scripts você precisará estar em um terminal com o virtualenv ativado - basta executar os comandos abaixo a cada nova sessão do seu terminal:
cd gestao-br-spiders
source .env/bin/activate
O script cli.py
é uma interface de linha de comando que:
- Recebe parâmetros de busca de licitações (ano e unidade gestora);
- Navega no site da Prefeitura de Marmeleiro, faz a busca e baixa os HTMLs das páginas de resultado (crawling);
- Extrai os dados dos HTMLs baixados (parsing);
- Exporta os dados para um arquivo CSV.
Para rodá-lo, basta executar:
python cli.py <ano> "<unidade gestora>"
Onde <ano>
e <unidade gestora>
são os possíveis valores apresentados no
formulário do site, a saber:
<ano>
:2013
,2014
,2015
,2016
ou2017
.<unidade gestora>
:CONSOLIDADA
,PREFEITURA MUNICIPAL
,FUNDO MUNICIPAL DE SAÚDE
ouASSISTÊNCIA SOCIAL
.
Note que caso a
<unidade gestora>
possua espaço você precisará colocar o parâmetro entre aspas na linha de comando.
Exemplo:
python cli.py 2017 "FUNDO MUNICIPAL DE SAÚDE"
- Use a metodologia do git flow para criar seus branches;
- Use Semantic Versioning para nomear as versões;
- Sempre que possível crie testes automatizados.