- Empaqueta una página web en un solo archivo HTML
- A diferencia de la función tradicional de "guardar página",
monolith guarda de una vez no solo el documento objetivo, sino también los assets de CSS, imágenes y JavaScript
- Incrusta todos los assets como URL de datos, para que la página pueda renderizarse igual que en Internet incluso sin conexión de red
- Está escrito en Rust y se puede instalar en macOS/Windows/Linux: cargo/brew/choco/snap/apk..
Cómo usarlo
Opciones
-a: excluir fuentes de audio
-b: usar una base URL personalizada
-B: impedir la búsqueda de assets en un dominio específico
-c: excluir CSS
-C: leer cookies desde file
-d: permitir la búsqueda de assets solo en los domain(s) especificados
-e: ignorar errores de red
-E: guardar el documento con una encoding personalizada
-f: omitir frames
-F: excluir web fonts
-h: mostrar información de ayuda
-i: eliminar imágenes
-I: aislar el documento
-j: excluir JavaScript
-k: aceptar certificados X.509 (TLS) no válidos
-M: no agregar marca de tiempo ni información de URL
-n: extraer el contenido de los elementos NOSCRIPT
-o: escribir la salida en file (usar “-” para STDOUT)
-s: modo silencioso
-t: ajustar el network request timeout
-u: proporcionar un User-Agent personalizado
-v: excluir video
Listas blanca y negra de dominios
- Con las opciones
-d y -B, se pueden controlar los dominios desde los que se permite buscar assets.
Contenido dinámico
- Monolith no incluye un motor de JavaScript, por lo que los sitios web que obtienen y muestran datos después de la carga inicial pueden requerir herramientas adicionales.
- Por ejemplo, se puede usar Chromium (Chrome) como preprocesador para este tipo de páginas.
Configuración de proxy
- Se deben configurar las variables de entorno
https_proxy, http_proxy, no_proxy.
Licencia
- Creative Commons Zero v1.0 Universal
- Dentro de los límites legales posibles, el autor dedica al dominio público mundial todos los derechos de autor y derechos conexos de este software
Opinión de GN⁺
monolith es una herramienta eficaz para conservar páginas web sin conexión exactamente como el original, y puede ser útil para investigadores o desarrolladores.
- Esta herramienta puede resultar especialmente atractiva para quienes estén interesados en el archivado web o la preservación de contenido, ya que permite revisar páginas web incluso en entornos sin conexión a Internet.
- Desde una perspectiva crítica, tiene la limitación de no poder manejar contenido cargado dinámicamente, lo que puede causar la molestia de tener que usar herramientas adicionales.
- Otros proyectos con funciones similares incluyen HTTrack o Wget, que también pueden usarse para guardar sitios web sin conexión.
- Antes de usar
monolith, es importante verificar los derechos de autor y los permisos de uso de la página web que se desea guardar, y asegurarse de que el propósito de uso del contenido guardado no genere problemas legales.
3 comentarios
Me molestaba que se guardara como archivo empaquetado, pero si se guarda en un solo archivo, genial jaja. Parece que sería útil para archivar un sitio estático y subirlo a un servidor web ^^
Intenté archivar Bicycle - todo sobre el principio por el que se mueve una bicicleta.
Antes usaba una extensión de navegador similar, SingleFile - una herramienta que guarda una página web en un solo archivo HTML.
Ninguna de las dos herramientas logró ejecutar webgl correctamente.
monolith directamente no descargó el modelo, y
SingleFile sí descargó el modelo y llegó a renderizar hasta la primera imagen, pero no conserva ese comportamiento interactivo.
El tamaño de cada resultado es de 2 MB y 9 MB. Al hacer un hard refresh desde las herramientas de desarrollo, se descargan 3 MB.
Comentarios en Hacker News
Aprendí en el README cómo obtener el archivo HTML de una página web en macOS usando Google Chrome después de que se ejecuta JavaScript. Documenté más detalles en mi TIL, y mi propia herramienta, shot-scraper, que usa Playwright Chromium, también ofrece una función similar.
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \ --headless --incognito --dump-dom https://github.com > /tmp/github.htmlPrefiero distribuir páginas de un solo archivo siempre que sea posible. Es por el principio de que todo debería poder verse mediante "ver código fuente". Estas páginas son autocontenidas y pueden usarse sin conexión o volver a subirse. Hice un sistema de build simple para escribir juegos usando TypeScript y compilarlos en un solo archivo HTML. Cuando el navegador soporte la sintaxis de TypeScript, ya no hará falta un compilador ni una etapa de build.
¿Cómo se compara con SingleFile?
Uso con frecuencia servicios para guardar páginas web y leerlas después, pero muchas veces, cuando realmente intento leerlas, la página ya no existe. Estoy considerando que quizá sea mejor pasar a una versión archivada para uso offline.
Pregunta sobre cómo restaurar un sitio web completo desde Wayback Machine. La base de datos de un sitio querido fue eliminada, pero todo el contenido existe en Internet Archive. Parece que haría falta scraping manual y usar Python para corregir URLs de CSS, entre otras cosas.
Escribí algo parecido hace unos años y lo uso principalmente al generar HTML desde programas en Go. Uso enlaces a hojas de estilo externas y JavaScript, y luego proceso todo en un solo archivo HTML.
Opinión de que sería bueno tener soporte para seguir enlaces hasta una profundidad determinada. Mencionan una función similar a Httrack.
Esta herramienta es interesante, pero opinan que es un parche temporal para resolver problemas de cómo los navegadores manejan las páginas web. Sostienen que, en lugar de guardar una página como el archivo "blah.html" y la carpeta "blah_files", el navegador debería agrupar ambos en una sola carpeta para poder moverlos y copiarlos fácilmente.
Explicación de cómo usar wget para descargar una página web y todos sus recursos, junto con un enlace a la documentación.
Comparten un enlace relacionado al post de Hacker News de agosto de 2019, "Show HN: CLI tool for saving web pages as a single file".