Consultar endereços e CEPs brasileiros utilizando Python

Arthur Fortes
2 min readFeb 6, 2020

--

Atualmente, não existe nenhuma base oficial gratuita de consulta de endereços e CEPs no Brasil. Hoje, somente o site dos Correios pode ser usado para este fim, e foi através dele que desenvolvi uma API em Python chamada consulta_correios.

Essa biblioteca é responsável por localizar o CEP através de informações dos endereços e/ou endereços pelo número do CEP, retornando o conteúdo da requisição. Para o segundo caso, já existem diversas bibliotecas e scripts, tais como ViaCep e PyCEP Correios.

Como funciona?

A API faz uma requisição POST para o site dos correios com o CEP ou endereço desejado (o CEP/endereço deve ser passado como parâmetro). Como resposta, a API recebe todo o conteúdo da página com os resultados da busca.

Nota: Para testar a busca no site dos Correios, basta entrar aqui.

Com o conteúdo retornado, utiliza-se a biblioteca Beautiful Soup para manipular o HTML da página e recuperar somente os dados relevantes. Por fim, a API trata esses campos e os retornam através de um dicionário.

Requisitos

Python 3.5+

Bibliotecas Python:

  • beautifulsoup4
  • requests
  • unidecode

Instalação

Para instalar a versão do repositório do Python, basta utilizar o comando:

pip install Consulta-Correios

Para instalar a versão mais atual, basta utilizar o comando:

pip install -U git+git://github.com/arthurfortes/consulta_correios.git

Utilização

Para localizar o CEP pelo endereço, incluindo outros atributos (como tipo de logradouro ou bairro), basta utilizar o seguinte código:

>>> import consulta_correios

>>> address = consulta_correios.busca_cep('Av. Júlio Prestes')
>>> print(address)
{'address': 'Avenida Julio Prestes', 'neighborhood': 'Taquaral', 'city/state': 'Campinas/SP', 'zipcode': '13076-001'}

Para localizar o endereço pelo CEP, utiliza-se o mesmo código, mudando apenas o parâmetro:

>>> import consulta_correios

>>> address = consulta_correios.busca_cep('13073-003')
>>> print(address)
{'address': 'Avenida Julio Prestes', 'neighborhood': 'Taquaral', 'city/state': 'Campinas/SP', 'zipcode': '13076-001'}

Quer contribuir? Basta acessar o Github da API e seguir as instruções.

Conclusões

Neste artigo, apresentei a Consulta Correios, uma API em Python para auxiliar os desenvolvedores, de maneira prática e simples, a obter informações de endereço (logradouro, cidade, estado, CEP, etc). A biblioteca é open-source e está aberta para uso comercial e contribuições. :)

Referências

--

--

Arthur Fortes
Arthur Fortes

Written by Arthur Fortes

Data scientist and Python developer with experience in research and industrial projects. Innovation Enthusiast.

Responses (3)