Skip to content

Latest commit

 

History

History
219 lines (158 loc) · 6.53 KB

File metadata and controls

219 lines (158 loc) · 6.53 KB

wakatime

API Casa dos Dados - Web Scraping 🚀

📖 Sobre

Esta API foi desenvolvida para o projeto do site Casa dos Dados, que tem como objetivo facilitar o acesso a dados públicos através de endpoints RESTful. A API faz uso do framework FastAPI e utiliza do RPA ( Robotic Process Automation) para realizar a coleta de dados.

Os dados são retornados em formato JSON, e é possível realizar o download dos dados em formato Excel e armazenar no banco de dados MongoDB.

Necessário realizar cadastro no sistema para ter acesso aos endpoints. A API está com seguro com autenticação JWT.

🚀 Tecnologias utilizadas

Python FastAPI MongoDB GitHub Pycharm Postman

⚙️ Instalação

💻 Pré-requisitos

Antes de começar você vai precisar ter instalado em sua máquina as seguintes ferramentas:

  • Você instalar o versão mais recente do Python, estou utilizando a 3.11.
  • Você precisa instalar o MongoDB para armazenar os dados ou utilizar o MongoDB Atlas.
  • Você precisa instalar o PyCharm para desenvolver o projeto.
  • Ter instalado o Git para clonar o projeto.

Com tudo instalado, você pode seguir os passos abaixo:

🎲 Rodando o projeto

  • Clone este repositório
$ git clone https://github.com/matheus-feu/api_casa_dados.git
  • Acesse a pasta do projeto no terminal/cmd
$ cd api_casa_dados
  • Crie um ambiente virtual com o Python
$ python -m venv venv
  • Ative o ambiente virtual
$ venv\Scripts\activate
  • Instale as dependências
$ pip install -r requirements.txt

Ou caso esteja utilizando poetry igual a mim, basta rodar o comando abaixo:

$ poetry install
$ poetry shell
  • Crie um arquivo .env na raiz do projeto e adicione as variáveis de ambiente que estão no arquivo .env.example
$ touch .env

📌 Endpoints

Endpoint de Consulta Básica

Descrição

Este endpoint permite realizar uma pesquisa básica de dados de uma empresa. Onde é necessário informar o CNPJ da empresa, que irá retornar os dados da empresa e os dados dos sócios.

O endpoint retorna os dados na seguinte estrutura:

{
  "result": {}
}

Onde result é um dicionário com os dados da empresa e o quadro societário.

URL do Endpoint

  • POST /api/v1/scraping_data/basic_search

Parâmetros da Solicitação

  • cnpj: O CNPJ da empresa que deseja consultar.

Exemplo de Solicitação

POST /api/v1/scraping_data/basic_search
Content-Type: application/json
{
  "cnpj": "00000000000000"
}

Endpoint de Consulta Avançada

Descrição

Este endpoint permite realizar uma pesquisa avançada de dados de uma empresa.

Os parâmetros são opcionais, e a quantidade de páginas é limitada a 50. Caso deseje quantas páginas sejam retornadas, basta passar o parâmetro qnt_pages com o valor desejado, irá avaliar a quantidade de resultados com a quantidade de páginas e trazer o valor menor.

Ao enviar cada parâmetro, irá preencher o campo de pesquisa com o valor informado.

O endpoint retorna os dados na seguinte estrutura:

{
  "results": [
    {}
  ],
  "num_results": "string",
  "qnt_pages": 0
}

Onde results é uma lista de dicionários com os dados da empresa, num_results é a quantidade de resultados encontrados e qnt_pages é a quantidade de páginas retornadas.

URL do Endpoint

  • POST /api/v1/scraping_data/advanced_search

Parâmetros da Solicitação

  • cep: O CEP da empresa que deseja consultar.
  • city: A cidade da empresa que deseja consultar.
  • cnae: O CNAE da empresa que deseja consultar.
  • date_from: A data inicial da empresa que deseja consultar.
  • date_to: A data final da empresa que deseja consultar.
  • ddd: O DDD da empresa que deseja consultar.
  • legal_nature: A natureza jurídica da empresa que deseja consultar.
  • neighborhood: O bairro da empresa que deseja consultar.
  • qnt_pages: A quantidade de páginas que deseja retornar, máximo de 50.
  • share_capital_from: O capital social inicial da empresa que deseja consultar.
  • share_capital_to: O capital social final da empresa que deseja consultar.
  • situation: A situação da empresa que deseja consultar.
  • social_reason: A razão social da empresa que deseja consultar.
  • state: O estado da empresa que deseja consultar.

Exemplo de Solicitação

POST /api/v1/scraping_data/advanced_search
Content-Type: application/json
{
  "cep": "04117091",
  "city": "São Paulo",
  "cnae": 123456,
  "date_from": "2021-01-01",
  "date_to": "2021-01-31",
  "ddd": 11,
  "legal_nature": "1015 - SOCIEDADE ANÔNIMA FECHADA",
  "neighborhood": "Vila Mariana",
  "qnt_pages": 1,
  "share_capital_from": 1000,
  "share_capital_to": 100000,
  "situation": "ATIVA",
  "social_reason": "Empresa Teste",
  "state": "SP"
}

📚 Bibliotecas

📞 Contato