• Publicidad

Búsqueda de cadena en $mech->content()

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Búsqueda de cadena en $mech->content()

Notapor TooRDJ » 2012-02-24 18:33 @814

¡Saludos!

Tengo un pequeño código, en el cual hago una consulta a una web, y quiero obtener los ID que identifican cada uno de los artículos de dicha web.

El formato de ID para cada articulo es el siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using html4strict Syntax Highlighting
  1. <li class="view-item" id="ITEM22483">
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Todos los IDs tienen el mismo formato y solo hay un por articulo, solo cambia el "ITEM22483".

Tengo la siguiente parte del código:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $mech = WWW::Mechanize->new();
  2. $mech->get($url);
  3. my $output_page = $mech->content();
  4.  
  5. if ($output_page =~/<li class=\"view-item\" id=\"(.*?)\">/) {
  6. print "ID: $1\n";
  7. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Este código funciona, me muestra el ID:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
ID: ITEM22483
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

El problema es que solo me muestra el primer ID que encuentra y hasta ahí llega. No me muestra los demás.

¿Qué me falta para que muestre los demás, y no se detenga en el primero que encuentra?

¡Gracias!
TooRDJ
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2010-06-10 13:04 @586

Publicidad

Re: Búsqueda de cadena en $mech->content()

Notapor explorer » 2012-02-24 18:56 @830

Hay que hacer una búsqueda mientras sigamos encontrando patrones:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. while ($output_page =~ /<li class="view-item" id="(.*?)">/g) {
  2.     print "ID: $1\n";
  3. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
El tema es usar una expresión regular con la opción /g. Dentro de un while(), nos va buscando todas las coincidencias.

Más información en perldoc perlre.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Búsqueda de cadena en $mech->content()

Notapor TooRDJ » 2012-02-24 19:02 @834

Perfecto. ¡Muchas gracias, explorer! :mrgreen:
TooRDJ
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2010-06-10 13:04 @586


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado