Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Content-Range

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio
Mensaje Mie May 28, 2008 10:37 pm
netsoul
Perlero Nuevo
Perlero Nuevo
Registrado: 04 May 2008
Mensajes: 32
Content-Range Responder citando

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.
Mensaje Jue May 29, 2008 2:41 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4035
Ubicación: Valladolid, España
Responder citando

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.
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group