egimenez
(usa Ubuntu)
Enviado em 07/08/2012 - 16:35h
Boa tarde pessoal tudo bem? Sou meio novato em perl já que alguns problemas eu consigo resolver e alguns não. No momento tenho uma dúvida que não sei se é possível ou não resolver, na loja que trabalho eu necessito entrar algumas vezes no site da receita federal para buscar dados de produtos que foram faturados para a gente, pensando no seguinte eu desenvolvi esse script :
#!/usr/bin/perl
use WWW::Mechanize;
use LWP::Simple;
use LWP::UserAgent;
my $receita = "https://nfe.fazenda.sp.gov.br/ConsultaNFe/consulta/publica/ConsultarNFe.aspx";
my $temp = "C:/imagens";
print "Digite a chave da nfe\n";
my $chave = <STDIN>; chomp $chave;
#my chave = "35120354362041000157550010000337091127006860";
&nfe($receita,$chave);
sub nfe() {
my $url = $_[0];
my $key = $_[1];
my $envia = &retorno($url,$key);
print "$envia";
if($envia =~ m/<span
class="linha">535016803110<\/span>/i) {
print "Ok...\n";
}
else {
print "Falhou...\n";
}
}
sub retorno() {
my $link = $_[0];
my $key = $_[1];
my $imagem = $temp."/imagem-".int(rand(10)).".jpg";
my $mech = WWW::Mechanize->new();
my $ret = $mech->get($link);
if($ret->content =~ m/<img src="~(.*)"\s+\/>/i) {
my $img = $1;
print "Baixando imagem... Verificar arquivo $imagem\n";
my $download = getstore($link."~".$img,$imagem);
if(is_success($download)) {
print "Download efetuado com sucesso.\n";
print "Digite as letras da imagem baixada:\n";
my $captcha = <STDIN>; chomp $captcha;
$mech->submit_form(
fields => {
'ctl00$ContentMain$tbxIdNFe' => $key,
'ctl00$ContentMain$tbxCaptcha' => $captcha,
});
$mech->submit('ctl00$ContentMain$btnConsultaCompleta');
return $mech->content;
}
else {
print "Download nao foi concluido\n";
}
}
}
A ideia é que o script preencha os campos do formulário do site conforme o que eu colocar no script, a chave eu consigo preencher porém o site tem o infeliz do captcha para atrapalhar, eu queria saber se alguém sabe como eu posso pular esse captcha ou preenche-lo sem problemas? Para ajudar vocês eu deixei uma chave como linha de comentário, a chave é valida na receita e como return eu deixei uma linha só para fazer o teste se ele passa ou não do form, a conclusão final é que quero fazer um script que preencha os campos e depois com loop ele vai pegar os dados de cada produto para mim e imprimir na tela, o problema é o captcha :/ help me please kkkkk.
Desculpa se postei errado ou cometi algum erro. Obrigado desde já.