• Publicidad

Guardar sólo texto de una página web

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

Guardar sólo texto de una página web

Notapor jasne » 2011-04-16 09:46 @448

Hola, soy nuevo en esto de Perl. He estado buscando por el foro mi duda pero no la he encontrado, por eso he creado este nuevo tema.

El caso es que quiero descargar solo el texto de una página web. He probado con:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. system ('wget "http://www.paginawebdejemplo.com" > salida.txt');
  2. system ('wget -o salida.txt "http://www.paginawebdejemplo.com" ');
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Y con diferentes opciones de wget pero no consigo dar con la solución.

Por eso pregunto a los sabios del foro que parámetros tengo que indicarle a wget para que me descargue sólo el texto de la página web.

Muchísimas gracias por la ayuda, no sólo con esta cuestión, si no por todas las ayudas que me habéis brindado desde que he empezado con Perl, si bien no estaba registrado hasta hoy, llevo accediendo a esta página desde hace un tiempo.

¡Saludos y de nuevo gracias!
jasne
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2011-04-16 09:29 @436

Publicidad

Re: Guardar sólo texto de una página web

Notapor explorer » 2011-04-16 10:02 @459

Bienvenido a los foros de Perl en español, jasne.

El tema es que wget solo devuelve el código HTML que le estás pidiendo. Pero lo que realmente quieres es solo la parte del texto que está dentro de ese código HTML.

Aquí puede haber un problema: ¿qué es lo que definimos como texto de la página? ¿Todo el contenido textual o solo aquél texto que aparece dentro de las marcas <p> (párrafos)? ¿Y si hay texto dentro de marcas <span> o <div>? ¿Y qué hacemos con el texto que hay dentro de los titulares <h1>, <h2>, <h3>...?

Debes concretar un poco la pregunta.

Por otra parte, en CPAN hay módulos para extraer todo el texto de una página HTML. Por ejemplo, HTML::Extract. También hay programas ya hechos, con muchas opciones, como html2plain.pl.
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: Guardar sólo texto de una página web

Notapor jasne » 2011-04-16 12:19 @555

Hola, antes de nada muchas, gracias explorer, por la rápida respuesta.

Tienes razón: debo concretar un poco más mi consulta. Lo que quiero es guardar la página web en formato fichero de texto. Es decir, si utilizara un navegador, y quisiera guardar la página le daría a "guardar como" y en tipo pondría "Archivo de texto". Lo que ocurre es que no sé hacer eso en Perl, por eso estaba utilizando wget, por si podía hacerlo.

Dado el formato del contenido de las páginas web que quiero descargar, sería el texto que aparece dentro de las marcas <p>, como tu bien has dicho, ya que el formato es el siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
                   ***** Resultados n *****

dato1 dato2 dato3  cadena1 cadena2 cadena 3
...
...
...
datoA datoB datoC cadenaA cadenaB cadenaC

                 ****** Fin Resultados n ******+
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Y así, una vez descargado estos datos en un fichero, ya puedo trabajar con ellos.

Espero haberme explicado mejor ahora.

¡Muchas gracias de nuevo!

¡Saludos!

PD: voy a echarle un vistazo también a HTML::Extract
jasne
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2011-04-16 09:29 @436

Re: Guardar sólo texto de una página web

Notapor jasne » 2011-04-17 07:26 @351

Hola de nuevo,

No lo he conseguido. ¿Algún alma caritativa que me ilumine? :-)

¡Gracias y Saludos!
jasne
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2011-04-16 09:29 @436

Re: Guardar sólo texto de una página web

Notapor explorer » 2011-04-17 08:23 @391

¿Dónde está el código que no te funciona?
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: Guardar sólo texto de una página web

Notapor pvaldes » 2011-04-17 13:33 @606

Hombre, si lo queremos hacer externamente lo suyo sería

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. system('wget -O web.html "http://lapaginaweb_a_descargar"');
  2. system('html2text -utf8 -o texto.txt web.html');
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


pero me gustaría ver una solución más "perlífera"... HTML::extract tiene buena pinta
pvaldes
Perlero nuevo
Perlero nuevo
 
Mensajes: 129
Registrado: 2011-01-22 12:56 @580

Re: Guardar sólo texto de una página web

Notapor explorer » 2011-04-17 16:36 @733

Si te funciona, entonces ya es una solución perlera.

Otra cosa es que quieras cambiar la llamada a wget por el método get() del módulo LWP::Simple, y que, en cuanto a la extracción de texto, trabajaras el desarrollo con algún módulo ya comentado.
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: Guardar sólo texto de una página web

Notapor jasne » 2011-04-20 10:46 @490

Hola de nuevo,

Al final, como todas las páginas web a las que tenía que acceder eran muy sencillas y tenían todas la misma estructura, no me hizo falta más que extraer sólo el texto contenido entre las <p>, por lo que utilizando simplemente wget he solucionado el problema.

Y mi script ya está en funcionamiento.

Muchas gracias por la ayuda, y sin duda seguiré visitando este foro.

¡Saludos!
jasne
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2011-04-16 09:29 @436


Volver a Básico

¿Quién está conectado?

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