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
wget
só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.
lynx
es un navegador web liviano y simple, que tiene la -dump
función que se utiliza para generar el resultado del proceso de análisis. -nolist
evita la lista de enlaces al final, que aparecerá si la página tiene algún hipervínculo.
Como lo menciona @Thor, elinks
también se puede usar para esto, ya que también tiene una -dump
opción (y debe -no-references
omitir 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 lynx
navegador similar a una consola. Es posible que desees comprobar lo que ya está disponible en tu sistema.
w3m -dump website.html