Mi objetivo es generar una fuente html en un archivo, estoy usandow3mpara navegar por la web desde la terminal.
Cuando se utiliza el siguiente comando en la terminal: w3m <url> -dump
el programa muestra el sitio web de forma no interactiva, pero no su fuente html.
Si abre un sitio web con w3m <url>
, el terminal mostrará el sitio y si presionav, entonces el programa mostrará la fuente html. Intenté crear un script pero sin éxito. Pensé que el argumento de la línea de comando -dump_source
me ayudaría, pero lo único que obtuve es un contenido de lectura no humano, no sé qué -dump_source
se suponía que debía devolver.
Esto es lo que probé hasta ahora:
- Úselo
-T text/html
con-dump
en la terminal pero la salida no cambió - Úselo
-T text/plain
con-dump_source
en la terminal con la esperanza de que la salida no humana se convierta en texto sin formato, pero no tuvo éxito (no entendí para qué se usa -T, incluso después de leer el manual de w3m escribiendoman w3m
en la terminal) - sabiendo que presionarvmientras w3m muestra un sitio web que cambia del contenido de la página web al código fuente html, intenté usargdbpara adjuntarlo al proceso w3m y redirigir suentrada estándarysalida estándara mis archivos (input.txt, output.txt) cuyo input.txt contiene un solov, pero no tuve éxito. Hacer esto en mi programa de prueba funcionó como se esperaba. Seguí lo descritoaquí. Si escribo
ls -l /proc/<w3m_pid>/fd
, donde w3m_pid es mi ID de proceso w3m que obtuve usandops ax
en la terminal, puedo ver que hay 3 descriptores de archivos, si intento redirigir el tercero, el programa falla y muestra:Se produjo un error: errorno=25 - Redirigir la E/S estándar
w3m <url> < input.txt > output.txt
tampoco funcionó - W3M utiliza combinaciones de teclas para navegar en la web, lo que significa que si presionavno es necesario presionar Enter, el terminal no almacena en el búfer la entrada, usando gdb adjunto al proceso w3m intenté eliminarlo usando
p system ("/bin/stty cooked")
, pero la combinación de teclas de w3m no cambió.
Mi pregunta es: ¿por qué redirigir E/S con gdb no funciona y qué puedo hacer para obtener el código fuente html? ¿w3m tiene una opción para generar el código fuente html que me falta o tendría que usar otro programa?
PD: necesito el código fuente html para una tarea universitaria, con el código fuente html puedo crear un script para navegar por la web y generar la página en un archivo, luego se supone que debo usar esas salidas con flex para extraer información estática sobre cosas. en la web, como: ¿cuántas palabras aparecen en las preguntas sobre el lenguaje c? Esta es mi idea.
Cualquier sugerencia sera apreciada.
Versión W3M:0.5.3+debian-15
Versión BGF:7.7.1
Versión de Ubuntu:14.04
¡Gracias de antemano!
Respuesta1
¿Por qué no puedes usar curl
?
curl web-address > file-source.
generará el código fuente en elfile
Como esto
curl http://askubuntu.com/questions/822139/how-to-output-web-page-html-source-code-into-a-file > source-html
Respuesta2
Esto ya ha sido respondido en:https://askubuntu.com/a/1273410/1124534
w3m -o accept_encoding=UTF-8 -dump_source google.com >file