🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #223

Re: Cambio en la web del DRAE

#223
From: Ignacio Arenaza
Date: Tue, 08 Dec 2009 14:16
98 lines
4162 bytes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

gamo@telecable.es writes:

> Nope, sale lo mismo de antes. Una pantalla con dos entradas de texto y 
> la llamada a darle a la flechita.

Creo que de alguna manera comprueba si la petici�n viene desde un
navegador 'interactivo', porque me pasa como a Gonzalo, desde Firefox
si funciona, pero desde lynx pidiendolo a pelo no.

As� que he hecho un script en Perl mezclando lo que ten�as y un par de
recetillas del 'Perl Cookbook' de O'Reilly, y con lo siguiente me
funciona perfectamente :-)

<------> <------> <------> <------> <------> <------> <------>
#!/usr/bin/perl -w

# Programa para acceder al diccionario de la RAE
# Distribuido bajo los t�rminos de la licencia GNU GPLv2

use strict;

use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;
use HTML::Entities;
use IO::File;
use POSIX;

# Formato de la direcci�n donde se pide el lema. Por si cambia en el futuro :-)
# Basta con marcar la posicion del lema a buscar con '%s' (sin las comillas)
my $RAE_URL_FORMAT = 'http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=%s&origen=RAE&TIPO_BUS=3';

my ($w, $url, $ua, $req, $resp, $tmpfile, $name, $fh);

if (@ARGV){
    if (-e $ARGV[0] && !-d $ARGV[0]){
        open IN, "<".$ARGV[0] or die "Cannot open: $!";
        chomp ($w = <IN>);
        close IN;
    }else{
        $w = $ARGV[0];
    }
}else{
    chomp($w = <STDIN>);
}

# Codificar las e�es, tildes y dem�s en formato HTML.
$w = HTML::Entities::encode ($w);
$url = sprintf $RAE_URL_FORMAT, $w; 

$ua = LWP::UserAgent->new();
# Simular que somos Mozilla Firefox 3.5.5 (se puede cambiar a voluntad)
$ua->agent('Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5');

$req = HTTP::Request->new(GET => $url);
# Simular todas las cabeceras que envia Firefox, para dar el pego }:-)
$req->referer('http://www.rae.es/rae.html');
$req->header('Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
$req->header('Accept-Language' => 'en-us,eu;q=0.7,en;q=0.3');
$req->header('Accept-Encoding' => 'gzip,deflate');
$req->header('Accept-Charset' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7');
$req->header('Keep-Alive' => '300');
$req->header('Connection' => 'keep-alive');

$resp = $ua->request($req);
if ($resp->is_error()) {
    print "Error recuperando la pagina: %s\n", $resp->status_line;
}

do {
    $tmpfile = POSIX::tmpnam();
} until $fh = IO::File->new($tmpfile, O_RDWR|O_CREAT|O_EXCL);

print $fh $resp->content();
close $fh;
print `lynx -dump -nolist -force_html $tmpfile`;
unlink($tmpfile);

exit 0;
<------> <------> <------> <------> <------> <------> <------> 

Saludos. I�aki.

- -- 
Mondragon University

GPG Key available at public keyservers
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Processed by Mailcrypt and GPG

iD8DBQFLHl+gRgC43oKhB3QRAoxTAKCYlQUQ7OLiv5sgIaLLfUOCr5c0TwCdGTWK
fBfCcVRuSaBPQ6fgZ7IyRcE=
=eFww
-----END PGP SIGNATURE-----
Technical Details
Message-ID: <67hbs1a6v3.fsf@poseidon.eteo.mondragon.edu>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!fu-berlin.de!news.eteo.mondragon.edu!eteo.mondragon.edu!not-for-mail
References: <20091207140117.0c76e2a5@petres.salonet.snet> <4b1d268d@news.x-privat.org>

Show Full Headers
Complete Article Headers
X-Google-Thread: 646d03421f,6940cc9820f4318a
X-Google-Attributes: gid646d03421f,public,usenet
X-Google-NewGroupId: yes
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!fu-berlin.de!news.eteo.mondragon.edu!eteo.mondragon.edu!not-for-mail
From: Ignacio Arenaza <iarenaza@eb2ebu.ampr.org>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Cambio en la web del DRAE
Date: Tue, 08 Dec 2009 15:16:32 +0100
Organization: Mondragon Unibertsitatea - ETEO
Lines: 98
Distribution: es
Message-ID: <67hbs1a6v3.fsf@poseidon.eteo.mondragon.edu>
References: <20091207140117.0c76e2a5@petres.salonet.snet> <4b1d268d@news.x-privat.org>
NNTP-Posting-Host: sid.eteo.mondragon.edu
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: poseidon.eteo.mondragon.edu 1260281792 2453 172.31.3.9 (8 Dec 2009 14:16:32 GMT)
X-Complaints-To: newsmaster@eteo.mondragon.edu
NNTP-Posting-Date: Tue, 8 Dec 2009 14:16:32 +0000 (UTC)
User-Agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.4 (gnu/linux)
Cancel-Lock: sha1:NVYSrHtznaLuITmOt32i6+W2P+o=