Mie May 28, 2008 10:37 pm
|
 |
netsoul
Perlero Nuevo

|
Registrado: 04 May 2008
Mensajes: 43
|
|
| Content-Range |
|
|
Hola.
Después de tanta lucha he escrito mi código en Perl, pero aun así no sabría decir si mi idea es bien objetiva.
| Perl: | #!/usr/bin/perl -w
use LWP:: UserAgent;
use HTTP:: Request;
$ua = LWP:: UserAgent-> new;
$ua-> agent("Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)");
for($id= 3506; $id<= 3506; $id++ ){
$host= "http://www.sevillafc.es/noticias.php?id=". "$id";
$req = HTTP:: Request-> new(GET => $host);
$response = $ua-> request($req);
$contenido = $response-> content();
print $contenido;
} |
Mi idea es solamente adquirir los 100 títulos de las noticias (rango 3506-3606) de cada "Id" e imprimirlos usando la cabecera 'Content-Range' para que así solamente baje ese recurso especifico.
Ejemplo:
| Código: |
-1. EL SEVILLA TRASPASA A BAPTISTA AL MADRID POR UN MONTANTE GLOBAL DE 24,5 MILLONES DE EUROS
-2. ENZO MARESCA: “VENGO PARA DARLE EQUILIBRIO AL EQUIPO”
-3. BAPTISTA SE DESPIDIÓ DE SUS COMPAÑEROS TRAS EL DESAYUNO ANTES DE VOLVER A ESPAÑA
.
.
.
-100.... |
Si podrían ayudarme, seré muy grato.
Gracias. |
|
|
|

Jue May 29, 2008 2:41 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4130
Ubicación: Valladolid, España
|
|
|
|
|
Si suponemos que cada página, con su titular, está almacenada en una base de datos con un 'Id' único, quiere decir que solo voy a tener que bajarme la página una sola vez: almacenaré los títulos en mi ordenador para no tener que pedírselos a la base de datos cada vez. Con un módulo como Storable, o guardándolos en algo como una base de datos, arreglo el almacenamiento de los títulos.
Así, si solo voy a bajarme las páginas una sola vez, entonces puedo bajarme las páginas enteras (no es mucha molestia, ocupan menos de 30Kb cada una).
El usar el Content-Range está bien para no bajarlo todo, pero te arriesgas a no atinar con la posición en la que se encuentra el titular.
Además, bajar las páginas y extraer los titulares se puede hacer en muy poco espacio:
| Código: |
explorer@joaquin:~/Documents/Desarrollo> perl -MLWP::Simple -le 'my $s = get("http://www.sevillafc.es/noticias.php?id=3506"); while ( $s =~ m{<strong>(.*?)</strong>}simog ) { $t = $1; next if $t =~ /[a-z]/; $t =~ s/^\s*//; $t =~ s/ *$//; print $t if $t}'
EL SEVILLA TRASPASA A BAPTISTA AL MADRID POR UN MONTANTE GLOBAL DE 24,5 MILLONES DE EUROS |
Solo hay que meter esto en un bucle (dejándolo más bonito, claro), y guardar los titulares bajados en una base de datos o en una sistema persistente, como Storable o Cache::Cache o algo similar. La página te las bajado una vez y así no molestas a los del Sevilla F.C. |
|

Powered by phpBB © 2001, 2005 phpBB Group
|