Correios - Rastreador de encomendas
Publicado por Fernando (última atualização em 23/12/2013)
[ Hits: 11.037 ]
Homepage: https://github.com/phoemur/
Mais um rastreador de encomendas dos Correios, agora em Python 3.
#!/bin/env python3
import urllib.request
import re
import sys
def usage():
print('Modo de uso: {0} "ENCOMENDA[1]" "ENCOMENDA[2]" ... "ENCOMENDA[N]"'.format(sys.argv[0]))
sys.exit(1)
def encomenda(lista):
for codigo in lista:
content = []
with urllib.request.urlopen('http://websro.correios.com.br/sro_bin/txect01$.QueryList?P_ITEMCODE=&P_LINGUA=001&P_TESTE=&P_TIPO=001&P_COD_UNI={}'\
.format(codigo)) as url:
for line in url.readlines():
content.append(line.decode('iso-8859-1'))
content = [ elem.rstrip() for elem in content if 'rowspan' in elem ]
if len(content) == 0:
print('Encomenda {0} não foi encontrada'.format(codigo))
else:
print('\n\nHistórico do objeto: {0}\n'.format(codigo))
for data in content:
[(dia, local, sit)] = re.findall('<tr><td rowspan.+>(.*)</td><td>(.*)</td><td><FONT.*>(.*)</font>.*', data)
dia = " ".join(dia.split())
local = " ".join(local.split())
sit = " ".join(sit.split())
print('Data: {0}'.format(dia))
print('Local: {0}'.format(local))
print('Situação: {0}'.format(sit))
print()
def main():
if len(sys.argv) == 1 or sys.argv[1] in {'-h', '--help'}:
usage()
args = [ elem.upper() for elem in sys.argv[1:] if len(elem) == 13 ]
if len(args) == 0:
print('Código de encomenda inválido\nO código deve ter 13 dígitos')
usage()
else:
encomenda(args)
if __name__ == '__main__':
main()
Árvore binária de busca do tipo splay
Script Python de orçamento pessoal
Compressão de série numérica em Python
Crivo de Eratóstenes Simples em Python
Validador de cartão de crédito
Nenhum comentário foi encontrado.
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
diferença entre o Tor baixado pelo Gerenciador de Aplicativos e o Tor ... (1)
Podem me chamar de 1mbecil :) (2)
Debian Stable travado em atualizações: dist-upgrade não resolve [RESOL... (11)
Como ler fonte de um projeto? [RESOLVIDO] (5)
Perfil criado no samba ad dc não loga no Windows 10 e 11 [RESOLVIDO] (14)









