[Cascavel-pm] Problemas em recuperar algumas páginas da Web via Perl

gtassis@dcc.ufmg.br gtassis em dcc.ufmg.br
Sexta Dezembro 16 09:28:22 PST 2005


Para várias URLs, o código PERL abaixo consegue baixar corretamente as
páginas HTML relacionadas. Só que não funciona para algumas URLs. Por
exemplo, para uma determinada URL, o conteúdo de $página retorna um
cabeçalho e um texto HTML que não corresponde à página em questão. Não sei
porque isto está acontecendo com algumas URLS.

Isto é algo normal, devido a um possível bloqueio do servidor com
relação ao acesso de suas páginas via Perl? Ou existe algum erro no código
Perl abaixo? Alguém já passou por algum problema parecido e pode me
ajudar?

Desde já, agradeço qualquer retorno.
Abraços.

----------------------------------------------------------------------------------------
$AF_INET = 2;
$SOCK_STREAM = 1;
$port = 80 if ($port == 0);
($name, $aliases, $proto) = getprotobyname("tcp");
($name, $aliases, $type, $len, $thisaddr) = gethostbyname($client_host);
($name, $aliases, $type, $len, $thataddr) = gethostbyname($server_host);

($a, $b, $c, $d) = unpack('C4', $thataddr);
if (($a eq "") && ($b eq "") && ($c eq "") && ($d eq "")) {
print "ERRO: host $server_host desconhecido!\n";
return "";
}

$sockaddr = "S n a4 x8";
$this = pack($sockaddr, $AF_INET, 0, $thisaddr);
$that = pack($sockaddr, $AF_INET, $port, $thataddr);

if (socket(S, $AF_INET, $SOCK_STREAM, $proto) == false){
print "ERRO: Não se pode criar o soquete!\n";
return "";
}

if (connect(S, $that) == false) {
print "ERRO: Não se pode conectar ao servidor $server_host, porta
$port\n"; return "";
}

print S "GET /$document HTTP/1.0\n\n";
print S "Host: $server_host\n\n";
@pagina = <S>;
$pagina = "@pagina";
close S;
----------------------------------------------------------------------------------------







Mais detalhes sobre a lista de discussão Cascavel-pm