• Publicidad

Capturar texto dentro de HTML

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

Capturar texto dentro de HTML

Notapor Altair Auditore » 2011-09-11 07:18 @345

Hola de nuevo...

Podría alguien darme alguna info de cómo podría capturar lo que comienza en la etiqueta <title> y termina en </url>.

Yo puedo capturar todo lo que está dentro de la etiqueta <title> pero al identificar el salto de línea no obtengo ningún resultado...

Este es el texto donde hago la búsqueda:
<Title>Stadtplaene fuer Handys von Nokia und Sony Ericsson - News ...</Title>
<Url>http://www.xonio.com/news/news_10830297.html</Url>


Gracias por su ayuda.
Saludos.
Avatar de Usuario
Altair Auditore
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2011-08-15 08:57 @414

Publicidad

Re: Capturar texto dentro de HTML

Notapor explorer » 2011-09-11 07:49 @368

Sería algo así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
($captura) = $html =~ m{<title>(.*?)</url>}smi;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

El truco está en la opción /s que indica que el comodín '.' capture también los finales 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: Capturar texto dentro de HTML

Notapor Altair Auditore » 2011-09-11 14:56 @664

¡¡Hola, Explorer!!

De antemano, gracias por tu ayuda... Lamentablemente no he podido realizar la acción que deseo aún, con tu explicación.

Ya he tratado casi todo el día y nada, estoy empezando a desesperarme... lol

Estas son unas de las líneas que quiero analizar:
Sintáxis: [ Descargar ] [ Ocultar ]
Using html4strict Syntax Highlighting
  1. <Result>
  2. <Title>
  3. CHIP Online - Deutschlands Webseite Nr. 1 fuer Computer, Handy ...
  4. </Title>
  5. <Url>http://www.pconline.de/</Url>
  6. <ClickUrl>http://www.pconline.de/</ClickUrl></Result>
  7. <Result>
  8. <Title>
  9. nautiker-Werbeagentur, Werbung, Marketing, Internet-Agentur ...
  10. </Title>
  11. <Url>http://www.nautiker.info/</Url>
  12. <ClickUrl>http://www.nautiker.info/</ClickUrl>
  13. </Result>
  14. <Result>
  15. <Title>SV Manching e.V.</Title>
  16. <Url>http://www.sv-manching.de/</Url>
  17. <ClickUrl>http://www.sv-manching.de/</ClickUrl>
  18. </Result>
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Y una parte del código que he probado es este:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. open(DATOS,"$file")|| die "Die File $archivo, existiert nicht - Aborting Programm";
  2. while(<DATOS>){
  3.   $linea=$_;
  4.   if($linea=~m{<title>\n(.*?)<\/title>}sig){
  5.    print TEMP $linea;
  6.   }
  7. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Como verás, abro el archivo donde tengo las líneas anteriores y lo voy recorriendo dentro del while() pero aun no he podido capturar todo lo que está dentro de las etiquetas <title> y </url>. Lo único que sé es que ese salto de línea me está dando problemas. De ahí nada más... ¿Podrías darme una idea de cómo podría hacer esto?

Muchas gracias por tu ayuda.
Saludos.
Avatar de Usuario
Altair Auditore
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2011-08-15 08:57 @414

Re: Capturar texto dentro de HTML

Notapor explorer » 2011-09-11 18:59 @832

Yo lo haría así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use File::Slurp;
  2.  
  3. my $html = read_file($file);
  4.  
  5. while($html =~ m{<title>\s*(.*?)\s*</title>.*?<url>\s*(.*?)\s*</url>}gsmi) {
  6.     print "[$1] => [$2]\n";
  7. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

El resultado es:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
[CHIP Online - Deutschlands Webseite Nr. 1 fuer Computer, Handy ...] => [http://www.pconline.de/]
[nautiker-Werbeagentur, Werbung, Marketing, Internet-Agentur ...] => [http://www.nautiker.info/]
[SV Manching e.V.] => [http://www.sv-manching.de/]
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
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


Volver a Básico

¿Quién está conectado?

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