Requisição de rastreamento dos Correios com cURL

1. Requisição de rastreamento dos Correios com cURL

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 09/04/2015 - 16:33h

Olá pessoal,

eu tenho um script que roda de hora em hora e baixa a página de rastreamento dos Correios de alguns objetos
o funcionamento é extremamente simples:
GET=`wget -O - "http://websro.correios.com.br/sro_bin/txect01$.QueryList?P_ITEMCODE=&P_LINGUA=001&P_TESTE=&P_TIPO=001&P_COD_UNI=$COD" | sed -n '/<table/,/<\/table/p' | sed '9,10!d;y/áÁàÀãÃâÂéÉêÊëËíÍóÓõÕôÔúÚçÇ/aAaAaAaAeEeEeEiIoOoOoOuUcC/' | tr -s ' '`

bem arcaico mas funcional, problema que agora os Correios mudaram o sistema, a nova página de rastreamento não aceita requisição via GET, então acho que terei de usar o cURL em vez do velho WGET, mas fiz algumas tentativas aqui e não tive sucesso, não me retorna nada
o novo site de rastreamento é: http://www2.correios.com.br/sistemas/rastreamento/default.cfm
e a url do post é: http://www2.correios.com.br/sistemas/rastreamento/resultado.cfm

enviei via curl pra essa url mas não retorna nada
alguém tem alguma sugestão?

o servidor que roda este script é bem pobre de ferramentas (BrazilFW 2.32), mas acho que tenho tudo que preciso (wget, sed, tr e tal)

Agradeço qqr dica!


  


2. Re: Requisição de rastreamento dos Correios com cURL

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 09/04/2015 - 17:37h

Cara, talvez isto resolva. Eu tive um problema semelhante, pois utilizava o wget para baixar um aplicativo e, do nada, parou d funcionar. O próprio site explica q vc deve acrescentar o parâmetro -U para forjar um UserAgent. Ex.:


wget -U "Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201" URL_DESEJADA




3. Re: Requisição de rastreamento dos Correios com cURL

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 09/04/2015 - 17:48h

renato_pacheco escreveu:

Cara, talvez isto resolva. Eu tive um problema semelhante, pois utilizava o wget para baixar um aplicativo e, do nada, parou d funcionar. O próprio site explica q vc deve acrescentar o parâmetro -U para forjar um UserAgent. Ex.:


wget -U "Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201" URL_DESEJADA


Opa, o wget da minha distro é bem pelado, ele não foi compilado com o parâmetro -U =/

de qqr forma não tenho mais como usar o Wget, a nova plataforma não aceita as requisições por get somente post, e com o curl não deu nem sinal de vida, não retorna nada





4. Re: Requisição de rastreamento dos Correios com cURL

Saulo Carius araujo
saulocarius

(usa Ubuntu)

Enviado em 09/04/2015 - 18:25h


Olá amigo, estou com um caso parecido com o seu...

Se você digitar o comando: curl -d "objetos=CODIGO_OBJETO" http://www2.correios.com.br/sistemas/rastreamento/resultado.cfm ele te dá a resposta em html, mas o problema é que o rastreamento mesmo me parece que vem de algum javascript, não mais no corpo do HTML como era no websro antigo então não tem como "estripar" via script.

O Correios agora tem um sistema de rastreamento com retorno em XML, mas é só para clientes com contrato, não tem acesso público...


5. Re: Requisição de rastreamento dos Correios com cURL

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 09/04/2015 - 18:32h

Eu inspecionei o elemento e percebi q o lance tá tudo em javascript. O q vc pode fazer é inspecionar no momento q vc manda buscar um código de rastreio válido. Nesse momento vc pode ter alguma pista de como ele insere os dados pra pesquisa.



6. Re: Requisição de rastreamento dos Correios com cURL

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 09/04/2015 - 18:54h


hm brothers acho que estamos perto de uma solução então
os status de cada encaminhamento ficam no HTML mesmo, rastreia algum objeto então vizualize o codigo fonte da página, nesquise por "Encaminhado" (no caso aqui utilizei esta palavra pois tinha este status)
parece que todo o rastreamento fica na linha 171, estou estudando isto pra arrumar meu sistema qqr novidade retorno aqui

por hora obrigado pela ajuda já me abriu um caminho


7. Re: Requisição de rastreamento dos Correios com cURL

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 09/04/2015 - 19:22h


saulocarius, vc está com o mesmo problema que eu ou é algo semelhante?

não sei porque não estou conseguindo tratar os dados com Sed, tudo que interessa está na linha 171, blz
estranho que extraio somente esta linha pra um arquivo no servidor, depois dou um cat no arquivo não lê o arquivo todo
e não consigo filtrar com sed pra extrair somente o que está dentro da <table> como funcionava antes, nem com grep estou conseguindo tratar, acho que é a codificação do arquivo


8. Re: Requisição de rastreamento dos Correios com cURL

Saulo Carius araujo
saulocarius

(usa Ubuntu)

Enviado em 09/04/2015 - 21:16h

daniel.uramg escreveu:


saulocarius, vc está com o mesmo problema que eu ou é algo semelhante?

não sei porque não estou conseguindo tratar os dados com Sed, tudo que interessa está na linha 171, blz
estranho que extraio somente esta linha pra um arquivo no servidor, depois dou um cat no arquivo não lê o arquivo todo
e não consigo filtrar com sed pra extrair somente o que está dentro da <table> como funcionava antes, nem com grep estou conseguindo tratar, acho que é a codificação do arquivo




Meu problema é semelhante ao seu, tenho um sistema em php que acessava a websro antiga e filtrava o html para pegar o rastreamento e quanto tivesse alguma alteração enviava por email, tenho alguns ecomerces que usam este sistema....

Agora com esta tela nova não vem os dados puros no html, parte dos dados vem por javascript, inviabilizando a chamada por wget ou curl...


9. Re: Requisição de rastreamento dos Correios com cURL

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 09/04/2015 - 21:29h


tem o sro xml mas tem que pedir um login e senha, ja perguntei por email sobre o que precisava pra obter nem responderam


10. script

alex
alsomean

(usa Outra)

Enviado em 09/04/2015 - 22:29h

Ola Pessoal,

Esse eh o codigo script do link de rastreamento de quem tem contrato, espero que possa ser util.

<script language="javascript">
<!-- inicio
function ver_ar(obj) {
/* NewWindow('ver_ar.php?objetox='+obj,'ars',400,250,1); */
NewWindow('../../tools/ar/?opcao=visualizar&registro='+obj,'ars',570,300,1);
}

function BT_PAGE_OnClick(ctl,dt,cep) {
if (ctl.substring(0,2)=='AR') {
NewWindow('aguarde.php?objetox='+ctl+'&datax=' + dt + '&cepx=' + cep,'objetos',550,350,1);
} else {
//NewWindow('aguarde.php?objetox='+ctl+'BR&datax=' + dt + '&cepx=' + cep,'objetos',550,350,1);
//maximizada('http://websro.correios.com.br/sro_bin/txect01$.QueryList?P_LINGUA=001&P_COD_UNI=' + ctl + 'BR', 'jancorreio');
maximizada('novorastreamento.php?obj=' + ctl + 'BR', 'jancorreio');

}
}

function rastrear_ar(obj, dt, cep) {
var tmpobj = 'AR' + obj.substring(2, 11) + obj.substring(0,2);
//alert(tmpobj);
NewWindow('aguarde.php?objetox=' + tmpobj + '&datax=' + dt + '&cepx=' + cep, 'objetos', 550, 350, 1);
}

function relat(n,o) {
window.location='htmlect.php?datai=09/04/2015&dataf=09/04/2015&hrini=00:00&hrfim=23:59&r=3&descri=' + n + '&opcao=' + o + '&desanexar=0&sx=BR';
}

function relatar(n,o) {
window.location='htmlect.php?datai=09/04/2015&dataf=09/04/2015&hrini=00:00&hrfim=23:59&r=16&descri=' + n + '&opcao=' + o + '&desanexar=0&sx=BR';
}

function relatsecaoar(n, m, o) {
window.location='htmlect.php?datai=09/04/2015&dataf=09/04/2015&hrini=00:00&hrfim=23:59&r=21&descri=' + n + '&prod=' + m + '&opcao=' + o + '&desanexar=0&sx=BR';
}

function relatuf(n) {
window.location='htmlect.php?datai=09/04/2015&dataf=09/04/2015&hrini=00:00&hrfim=23:59&r=13&descri=' + n + '&desanexar=0&sx=BR';
}

function relatsecao(n,m,o) {
window.location='htmlect.php?datai=09/04/2015&dataf=09/04/2015&hrini=00:00&hrfim=23:59&r=7&descri=' + n + '&prod=' + m + '&opcao=' + o + '&desanexar=0&sx=BR';
}

function relatsecaouf(n,m) {
window.location='htmlect.php?datai=09/04/2015&dataf=09/04/2015&hrini=00:00&hrfim=23:59&r=15&descri=' + n + '&prod=' + m + '&desanexar=0&sx=BR';
}

function relatsecao1(n,m,o) {
window.location='htmlect.php?datai=09/04/2015&dataf=09/04/2015&hrini=00:00&hrfim=23:59&r=10&descri=' + n + '&prod=' + m + '&opcao=' + o + '&desanexar=0&sx=BR';
}

function relatsecao02(n,m,o) {
window.location='htmlect.php?datai=09/04/2015&dataf=09/04/2015&hrini=00:00&hrfim=23:59&r=23&descri=' + n + '&prod=' + m + '&opcao=' + o + '&desanexar=0&sx=BR';
}

function imprimir(n) {
if (n==1) {
var tsx = "";

if ("1" == "1") {
//if (parent.menu.document.formdata.sufixo.checked == true) {
tsx = "BR";
}
document.frmimp.action = 'imp.php?sx=' + tsx;
NewWindow('','novo_imp',500,500,1);
document.frmimp.submit();
}
if (n==2) {
var tsx = "";

if ("1" == "1") {
//if (parent.menu.document.formdata.sufixo.checked == true) {
tsx = "BR";
}
document.frmimp.action = 'excell.php?sx=' + tsx;
NewWindow('','novo_imp',350,150,0);
document.frmimp.submit();
}
if (n==3) {
var tsx = "";

if ("1" == "1") {
//if (parent.menu.document.formdata.sufixo.checked == true) {
tsx = "BR";
}
document.frmimp.action = 'texto.php?sx=' + tsx;
NewWindow('','novo_imp',350,150,0);
document.frmimp.submit();
}
if (n==4) {
var tsx = "";

if ("1" == "1") {
//if (parent.menu.document.formdata.sufixo.checked == true) {
tsx = "BR";
}
document.frmimp.action = 'html_pdf.php?sx=' + tsx;
NewWindow('','novo_imp',350,150,0);
document.frmimp.submit();
}
if (n==5) {
var tsx = "";

if ("1" == "1") {
//if (parent.menu.document.formdata.sufixo.checked == true) {
tsx = "BR";
}
document.frmimp.action = 'hexcell.php?sx=' + tsx;
NewWindow('','novo_imp',350,150,0);
document.frmimp.submit();
}
if (n==6) {
var tsx = "";

if ("1" == "1") {
//if (parent.menu.document.formdata.sufixo.checked == true) {
tsx = "BR";
}
document.frmimp.action = 'excellformatado.php?sx=' + tsx;
NewWindow('','novo_imp',350,150,0);
document.frmimp.submit();
}
if (n==7) {
var tsx = "";

if ("1" == "1") {
tsx = "BR";
}
document.frmimp.action = 'expvp.php?sx=' + tsx;
NewWindow('','novo_imp',350,150,0);
document.frmimp.submit();
}

}
//-->fim
</script>




11. Retorno.

Rafael Harus
rafaelharus

(usa Outra)

Enviado em 10/04/2015 - 10:09h


Parece que voltou a funcionar....


12. Re: Requisição de rastreamento dos Correios com cURL

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 10/04/2015 - 10:17h


pois é mas acredito que voltou temporariamente até os grandes clientes com contrato adaptem suas plataformas






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts