Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/leopiccionia/licitasp
https://github.com/leopiccionia/licitasp
Last synced: 10 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/leopiccionia/licitasp
- Owner: leopiccionia
- Created: 2017-04-27T00:33:20.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-06-22T00:12:48.000Z (over 7 years ago)
- Last Synced: 2023-02-26T19:42:11.228Z (almost 2 years ago)
- Language: Python
- Size: 14.6 KB
- Stars: 5
- Watchers: 2
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# LicitaSP
Esse projeto almeja integrar as bases de dados dos seguintes portais de compras públicas, fornecendo uma interface única:
* [BEC (Bolsa Eletrônica de Compras)](http://www.bec.sp.gov.br/BECSP/Home/Home.aspx)
* [Comprasnet](http://www.comprasgovernamentais.gov.br/index.php/placar-licitacoes)
* [e-negocios CidadeSP](http://e-negocioscidadesp.prefeitura.sp.gov.br)
* [Licitações-e](http://www.licitacoes-e.com.br/aop/index.jsp)
* [Pregão SP](http://www.pregao.sp.gov.br)Até o momento, temos funcionando um *script* que armazena no banco de dados as atualizações diárias do site Comprasnet.
Para executá-lo, execute o seguinte comando dentro da pasta:
```
scrapy crawl comprasnet
```Para executar o *script* recorrentemente, utilize um [agendador de *jobs*](https://en.wikipedia.org/wiki/Cron#Modern_versions).
## Estrutura de diretórios
A estrutura de diretórios deve soar familiar para alguém que já usou [Scrapy](https://doc.scrapy.org/en/latest/intro/tutorial.html):
* `scrapy.cfg`: Configurações do Scrapy.
* `licitasp/`: Raiz do projeto.
* `api.py`: Fornece uma API JSON, que serve `GET /api/acquisitions`.
* `items.py`: Define a classe `Acquisition`.
* `pipelines.py`: Persistência dos objetos em MongoDB.
* `settings.py`: Configurações do projeto.
* `spiders/`: Define os *crawlers*.
* `comprasnet_spider.py`: *Crawler* do site Comprasnet.
* `comprasnet_spider.py.md`: Documentação extensiva do arquivo anterior em formato *literate programming*.## Documentação da API
A chamada `GET /api/acquisitions` retorno um vetor de objetos JSON contendo os seguintes campos de interesse:
* `date`: Data de abertura da licitação.
* `description:` Descrição resumida do objeto da licitação.
* `link`: URL para página com maiores detalhes sobre a licitação.
* `modality`: Modalidade de licitação (ex: pregão eletrônico, pregão presencial, convite, etc.).
* `organization`: Órgão público licitante.
* `source`: Origem dos dados (no caso, "comprasnet").## Requisitos
O projeto requer Python com os plugins `scrapy`, `flask` e `pymongo`, bem como MongoDB.