¿Cómo obtener el texto de una página usando wget sin html?

¿Cómo obtener el texto de una página usando wget sin html?

Si intento wget en una página web, obtengo la página como html. ¿Es posible recuperar sólo el texto de un archivo sin html asociado? (Esto es necesario para mí ya que algunas de las páginas HTML contienen programas c que se descargan con etiquetas html. Tengo que abrirlo en el navegador y copiar manualmente el texto para crear un archivo .c).

Respuesta1

wgetsólo recuperará el documento. Si el documento está en HTML, lo que desea es el resultado del análisis del documento.

Podrías, por ejemplo, utilizar lynx -dump -nolist, si tienes un lince cerca.

lynxes un navegador web liviano y simple, que tiene la -dumpfunción que se utiliza para generar el resultado del proceso de análisis. -nolistevita la lista de enlaces al final, que aparecerá si la página tiene algún hipervínculo.

Como lo menciona @Thor, elinkstambién se puede usar para esto, ya que también tiene una -dumpopción (y debe -no-referencesomitir la lista de enlaces). Puede resultar especialmente útil si camina por algún sitio utilizando marcos -sigh- (MTFBWY).

Además, tenga en cuenta que, a menos que la página sea realmente solo código C con etiquetas HTML, deberá verificar el resultado, solo para asegurarse de que no haya nada más que código C allí.

Respuesta2

Si no tiene instaladas estas otras herramientas, solo wget, y la página no tiene formato, solo texto sin formato y enlaces, por ejemplo, código fuente o una lista de archivos, puede eliminar el HTML usando sed de esta manera:

wget -qO- http://address/of/page/you/want/to/view/ | sed -e 's/<[^>]*>//g'

Esto usa wget para volcar la fuente de la página a STDOUT y sed para eliminar cualquier < > par y cualquier cosa entre ellos.

Luego puede redirigir la salida del comando sed al archivo que desea crear usando > :

wget -qO- http://.../ | sed -e 's/<[^>]*>//g' > downloaded_file.txt

NB: Es posible que encuentre espacios en blanco adicionales en el archivo que no desea (por ejemplo, las líneas tienen sangría en algunas columnas)

Puede ser más fácil usar su editor de texto para ordenar el archivo (o un formateador fuente mientras descarga el código fuente C).

Si necesita hacer lo mismo con cada línea del archivo, puede incluir un comando para hacerlo en el comando sed (aquí eliminando un espacio inicial):

wget -qO- http://.../ | sed -e 's/<[^>]*>//g;s/^ //g' > downloaded_stripped_file.txt

Respuesta3

Sólo para agregar otra herramienta. Prefiero w3m, que es un lynxnavegador similar a una consola. Es posible que desees comprobar lo que ya está disponible en tu sistema.

w3m -dump website.html

información relacionada