Esse projeto almeja integrar as bases de dados dos seguintes portais de compras públicas, fornecendo uma interface única:
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.
A estrutura de diretórios deve soar familiar para alguém que já usou Scrapy:
scrapy.cfg: Configurações do Scrapy.licitasp/: Raiz do projeto.api.py: Fornece uma API JSON, que serveGET /api/acquisitions.items.py: Define a classeAcquisition.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.
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").
O projeto requer Python com os plugins scrapy, flask e pymongo, bem como MongoDB.