Skip to content

Latest commit

 

History

History
48 lines (34 loc) · 2.12 KB

README.md

File metadata and controls

48 lines (34 loc) · 2.12 KB

LicitaSP

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.

Estrutura de diretórios

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 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.