• Publicidad

Encontrar links lix.in

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Encontrar links lix.in

Notapor BigBear » 2012-03-25 21:42 @946

Tengo el siguiente código

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use HTML::LinkExtor;
  2. use LWP::UserAgent;
  3.  
  4. my $nave = LWP::UserAgent->new;
  5. $nave->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12");
  6. $nave->timeout(5);
  7.  
  8. my $code = toma("http://www.taringa.net/posts/animaciones/4164567.R/Saint-Seiya-Mei_-Hades-ElysionHen_Campos-Eliseos_-Vol-10_11.html");
  9.  
  10. while($code=~/http\:\/\/lix.in\/(.*?) /ig) {
  11. print $1."\n";
  12. }
  13.  
  14. sub toma {
  15. return $nave->get($_[0])->content;
  16. }
  17.  
  18.  
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


Lo que quiero es poder capturar todos los enlaces como

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
http://lix.in/-612344
http://lix.in/-62a9e5
http://lix.in/-643086
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Mediante una expresión regular para después guardarlo en un array.

¿ Alguien me puede ayudar ?
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Publicidad

Re: Encontrar links lix.in

Notapor explorer » 2012-03-25 21:59 @958

No lo he probado, pero debería ser así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. while ($code =~ m{http://lix\.in/(-\w+)}ig) {
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Hay que aprender más de expresiones regulares, Doddy... que llevas mucho tiempo con Perl ;)

Observa cómo usamos las llaves con m{}, para no tener que andar "escapando" los caracteres '/'.
El que sí que hay que escapar es el '.'.
Y el \w nos coincide con cualquier carácter que sea miembro de una palabra, así que \w+ es una "palabra entera", hasta el final de línea (donde hay un carácter espacio, que es el de avance de línea).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Encontrar links lix.in

Notapor BigBear » 2012-03-25 22:09 @965

Gracias explorer, funciona perfecto.

Tampoco llevo tanto en Perl. Además yo lo hago como hobby, no como un trabajo, por eso no me concentro tanto en estos temas.
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Encontrar links lix.in

Notapor explorer » 2012-03-26 06:59 @332

Pues las expresiones regulares son la tercera parte más importante de Perl, además de la comunidad y de CPAN. Y puedes usarlas en otros lenguajes, también.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Encontrar links lix.in

Notapor BigBear » 2012-03-26 10:22 @473

Sí, ya me di cuenta de las expresiones regulares porque también me sirven en Python y Ruby.
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 26 invitados