Pular para o conteúdo

Buscador de CEP

Este é um web-crawler simples escrito em Python 3 que serve para pesquisar endereços e CEP correspondentes através da linha de comando.

Ele não utiliza nenhuma API específica, apenas acessa a página dos Correios e pesquisa o endereço.

Modo de uso:

$ ./buscacep.py "Endereço ou CEP a ser pesquisado"

Utilize um endereço por vez. Exemplos:

$ ./buscacep.py Avenida nacoes unidas bauru
$ ./buscacep.py 17010-130
Fernando phoemur
Hits: 7.617 Categoria: Python Subcategoria: Internet
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Este é um web-crawler simples escrito em Python 3 que serve para pesquisar endereços e CEP correspondentes através da linha de comando.

Ele não utiliza nenhuma API específica, apenas acessa a página dos Correios e pesquisa o endereço.

Modo de uso:

$ ./buscacep.py "Endereço ou CEP a ser pesquisado"

Utilize um endereço por vez. Exemplos:

$ ./buscacep.py Avenida nacoes unidas bauru
$ ./buscacep.py 17010-130
Download buscacep.py Enviar nova versão

Esconder código-fonte

#!/usr/bin/env python3

import sys
import re
import urllib.request
import urllib.parse


def usage():
    print('Uso: {0} "Endereço ou CEP a ser pesquisado"'.format(sys.argv[0]))
    print('Utilize um endereço por vez. Exemplos:\n')
    print('{0} Avenida nacoes unidas bauru'.format(sys.argv[0]))
    print('{0} 17010-130'.format(sys.argv[0]))
    sys.exit(1)


def chunks(iterable, size):
    for i in range(0, len(iterable), size):
        yield iterable[i:i+size]


def main():
    if len(sys.argv) == 1 or sys.argv[1] in {'-h', '--help'}:
        usage()

    data = {'relaxation': ' '.join(sys.argv[1:]),
            'TipoCep': 'ALL',
            'semelhante': 'S',
            'cfm': '1',
            'Metodo': 'listaLogradouro',
            'TipoConsulta': 'relaxation',
            'StartRow': '1',
            'EndRow': '10'}

    url = r'http://www.buscacep.correios.com.br/servicos/dnec/consultaEnderecoAction.do'
    content = []
    opener = urllib.request.build_opener()
    opener.addheaders = [
        ('User-agent',
         "Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201")]

    with opener.open(url, urllib.parse.urlencode(data).encode('ISO-8859-1')) as url:
        for line in url.readlines():
            content.append(line.decode('ISO-8859-1'))

    content = [elem.rstrip() for elem in content if 'padding: 2px' in elem]

    lista = []
    if len(content) == 0:
        print('Endereço não encontrado ou site offline\n\n')
    else:
        for data in content:
            tp = re.search('.*style="padding: 2px">(.*)</td>', data)
            lista.append(tp.group(1) if tp is not None else '')

        for elem in chunks(lista, 5):
            for line in elem:
                print(line)
            print('\n')


if __name__ == '__main__':
    main()

CotDolar - Cotação do dólar em Python

Script em Python 3.6 para fazer scrape de uma URL exportando métricas no formato Prometheus

FREESCO Dialer Client

IPgetter

Loga Usuários!

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.