Bajo macOS, quiero convertir archivos HTML con imágenes referenciadas en la línea de comando/programadamente a archivos web .
Dado un archivo de muestra sample.html
que contiene:
<html><body>
<h1>File with resource</h1>
<p>This file shows text and references an image.</p>
<img src="sample.jpg" />
</body></html>
y una imagen sample.jpg
en el mismo directorio, puedo ver el archivo html en cualquier navegador y se procesa con la imagen. Para convertir a un archivo web probé:
textutil -convert webarchive sample.html
pero el resultado sample.webarchive
, cuando se abre en Safari, no representa la imagen, aunque la contiene (ver comentarios).
¿Cómo puedo hacer la conversión desde la línea de comando correctamente, para que el resultado contenga y represente la imagen? ¡Después de todo, para eso están los archivos web!
Use la herramienta webarchiver
(que puede instalar a través de brew install webarchiver
):
webarchiver -url sample.html -output sample.webarchive
El archivo web producido contiene la imagen y Safari muestra la imagen cuando muestra el archivo web.
Creo que la línea de comandos no es consciente de que se haya incluido ninguna imagen.
Probé una página web simple con imagen+texto y la abrí con Safari.
Si elige Archivo -> Guardar como .. 'archivo web', puede ver en el archivo web creado que la imagen se adjunta al final del archivo.
Es bastante obvio que Safari está usando alguna función interna de Swift/Objective-C para implementar la imagen.
Si elige obtener el html y tiene la imagen como referencia, parece ignorar la imagen y solo generar el texto (a través de textutil).
No confiaría en los archivos web al descargar páginas web; en su lugar, use wget o curl o scrapers como scrapy/beautifulSoup y descárguelos.
Sé que es conveniente tener 1 archivo, pero esa no es la mejor manera de guardar imágenes y eso hace que sea bastante difícil extraerlas después.
textutil
crear un archivo web adecuado, al menos no como yo lo llamo. Busco una herramienta/procedimiento de trabajo para que la línea de comando haga exactamente eso.
sin ladera
sample.html
en Safari, crea el archivo web desde allí, luego retira ambos archivos y abre el archivo en Safari?halloleo
sin ladera
plutil -p WEBARCHIVE
). Sin embargo, no miré las diferencias.halloleo
plutil
(Sabía que los archivos web usan elplist
formato, pero no pensé en analizarlos conplutil
. Investigaré con más detalle.