Consulta Correios

Publicado por Renê Barbosa de Figueirêdo Lima (última atualização em 05/01/2015)

[ Hits: 5.738 ]

Homepage: http://renebarbosa.com

Download consultacorreios

Download 1419900148.consultacorreios (versão 2)




Script para consulta de encomendas no sistema dos Correios.

  



Versões atualizadas deste script

Versão 2 - Enviado por Renê Barbosa de Figueirêdo Lima em 29/12/2014

Changelog: Adicionada mais uma alteração para limpeza da saída HTML extraída do site dos Correios.

Download 1419900148.consultacorreios


Esconder código-fonte

#!/bin/bash
#
# consultacorreios - Rastreio de encomendas pelo terminal
#
# Copyright (C) 2014 Renê Barbosa
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# TODO:
#
# - Melhorar sistema de validação de códigos;
# - Enviar e-mail (SMS?) a cada alteração de status;
#

function checa_correio() {

    IFS="" #Necessario para a formatação de saída da variável $checa
    curl=`which curl`
    if [ $? -eq 0 ]; then
            checa=`$curl -s "http://websro.correios.com.br/sro_bin/txect01$.QueryList?P_LINGUA=001&P_TIPO=001&P_COD_UNI=$codigo"| grep "<tr><td " | sed 's/<tr><td rowspan=[1?2]>//g' | sed 's/<tr><td colspan=2>//g' | sed 's/<\/td><t[r?d]>/ /g' | sed 's/<FONT COLOR="000000">//g' | sed 's/<\/font>//g' | sed 's/<\/td><\/tr>//g'`
        if [ `echo ${checa} | wc -l` -gt 1 ]; then
            echo $checa
        else
            echo "Nenhum registro encontrado. Codigo errado ou encomenda ainda nao foi cadastrada no sistema dos Correios."
        fi
    else
        echo "cURL não está instalado, por favor instale e execute novamente."
    fi

}

# Precisa melhorar o sistema de validação, a função abaixo atualmente só verifica se o código informado possui 14 caracteres
# Baseado na maioria dos códigos de rastreamento que possuo.
function testa_codigo() {

    if [ `echo $codigo | wc -c` -eq 14 ];then
        checa_correio $codigo
    else
        echo "Codigo Inválido"
    fi

}

if [ $# -eq 0 ]; then
    echo "Faltando parametro, por favor informar código de rastreio."
    exit 1;
elif [ $# -eq 1 ]; then
    codigo=$1
    testa_codigo $codigo
else
    cor="\e[31m"
    normal="\e[0m"
    qtd=$#;
    for a in `seq 1 $qtd`; do
         echo ""
         code="echo \$${a}";
         codigo=`eval ${code}`;
             echo -e "$cor$codigo:$normal"
         testa_codigo $codigo
         echo ""
    done
fi

Scripts recomendados

getw.bash

Script que pergunta o período para geração do relatório do SARG

Fecha janelas

Servidor em standby

Instalador do Java JRE Oracle


  

Comentários
[1] Comentário enviado por mrxrobot em 27/12/2014 - 13:09h

Muito bom, Parabéns.

[2] Comentário enviado por Zephyr em 30/12/2014 - 19:16h

Bem interessante o script.
Testei ele e funciona bem.

Fiz algumas modificações para meu uso pessoal. Estou fazendo algumas outras, se for o caso posto aqui a versão modificada depois.

Valeu pela contribuição!

[3] Comentário enviado por tonyrecife em 03/01/2015 - 01:32h

Preciso que seja em um formulário web


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts