• Publicidad

HTML::LinkExtor

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

HTML::LinkExtor

Notapor erv-Z » 2009-11-07 06:54 @329

Buenas. he estado viendo el módulo HTML::LinkExtor y he visto los ejemplos que pone CPAN pero no he entendido mucho; a ver si alguien me explica un poco más sobre este módulo; ahora pongo unas cosas que me gustaría saber.

1º.- Cómo le hago para extraer todas las URL del código de fuente de una website.

2º.- Cómo le hago para extraer sólo las que tenga extensión .jpg, .gif, .png u otra extensión que se me ocurra.

3º.- Y cómo le haría para extraer url, imágenes y todos juntos de una.

Saludos.
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Publicidad

Re: HTML::LinkExtor

Notapor explorer » 2009-11-07 08:26 @393

erv-Z escribiste:1º.- Cómo le hago para extraer todas las URL del código de fuente de una website.
No se puede. Solo se puede, con ese módulo, extraer los enlaces de un único documento HTML.

erv-Z escribiste:2º.- Cómo le hago para extraer sólo las que tenga extensión .jpg, .gif, .png u otra extensión que se me ocurra.
Este módulo no puede hacer eso. Solo devuelve los enlaces.

Es mejor usar WWW::Mechanize para esas cosas. Tienes un ejemplo de extracción de imágenes en WWW::Mechanize::Examples (busca por get-despair).

erv-Z escribiste:3º.- Y cómo le haría para extraer url, imágenes y todos juntos de una.
Eso es complicado, porque deberías realizar una búsqueda en profundidad por cada enlace, para seguirlo (por eso este problema se suele poner como ejercicio en todos los cursos de informática cuando se trata la recursividad). Una mejor opción es usar algo ya hecho, como usar el comando wget (ya instalado en tu Linux), si quieres algo parecido hecho en Perl, por ejemplo w3mir (pero hay alguno más).

Ten en cuenta que si las páginas web tienen contenido dinámico, es muy posible que no consigas bajarte todos los elementos.
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: HTML::LinkExtor

Notapor erv-Z » 2009-11-07 13:54 @621

Sí sé hacerlo con el módulo WWW::Mechanize; el problema es que el módulo Mechanize no viene instalado por defecto en Perl; en cambio, HTML::LinkExtor, sí.
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: HTML::LinkExtor

Notapor explorer » 2009-11-07 15:12 @675

¿Qué problema hay, entonces? Se instala y punto. Total, es cuestión de 2 minutos.
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: HTML::LinkExtor

Notapor erv-Z » 2009-11-07 15:20 @680

oka, viendo elo que me avias dicho, que HTML::LinkExtor solo extrae archivos html, mejor sigo con mechanize, gracias por la aclaracion.

Saludos.
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: HTML::LinkExtor

Notapor erv-Z » 2009-11-07 16:01 @709

He estado codeando algo con Mechanize y no me tira ninguna URL.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use WWW::Mechanize;
  2.  
  3. my $mech = WWW::Mechanize->new();
  4.  
  5. $mech->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12");
  6.  
  7. $mech->get("http://www.microsystools.com/services/http-user-agent/index.php");
  8.  
  9. my @enlaces = $mech->find_all_links( class => 'l' );
  10.  
  11. for my $enlace (@enlaces) {
  12.     print $enlace->url();
  13.    
  14. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: HTML::LinkExtor

Notapor explorer » 2009-11-07 17:00 @750

Pues porque en esa página no hay ningún enlace que tenga definido una clase CSS llamada 'l'.
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: HTML::LinkExtor

Notapor erv-Z » 2009-11-07 20:34 @898

¿Y hay alguna clase para que recoja todos los tipos de clases?
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: HTML::LinkExtor

Notapor explorer » 2009-11-07 20:38 @902

Lo dice el manual de WWW::Mechanize:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
find_all_links() with no parameters returns all links in the page.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


es decir:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
find_all_links() sin parámetros devuelve todos los enlaces de la página.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: HTML::LinkExtor

Notapor erv-Z » 2009-11-07 20:45 @906

oka, grax
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Siguiente

Volver a Básico

¿Quién está conectado?

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