Comment convertir un fichier HTML contenant des images référencées sur la ligne de commande en une archive Web?

2

Sous macOS, je souhaite convertir des fichiers HTML contenant des images référencées sur la ligne de commande / par programme archives Web .

Étant donné un exemple de fichier sample.html contenant:

<html><body>
<h1>File with resource</h1>
<p>This file shows text and references an image.</p>
<img src="sample.jpg" />
</body></html>

et une image sample.jpg dans le même répertoire, je peux voir le fichier html dans n’importe quel navigateur et le rendre avec l’image. Pour convertir en webarchive j'ai essayé:

textutil -convert webarchive sample.html

mais le résultat sample.webarchive ne pas, lorsqu’il est ouvert dans Safari, restituer l’image - bien contient il (voir commentaires).

Comment puis-je faire la conversion à partir de la ligne de commande correctement, de sorte que le résultat contienne et rend l'image? Après tout, c'est à quoi servent les archives Web!

halloleo
la source
Est-ce que ça marche si vous ouvrez sample.html dans Safari, créez la Webarchive à partir de là, puis déplacez les deux fichiers et ouvrez l’archive dans Safari?
nohillside
@patrix Bonne question! Je l'ai essayé et, comme prévu, Safari peut le faire: lorsque Safari enregistre l'archive, celle-ci est enregistrée de manière à ce que, une fois ouverte et restituée, l'image s'affiche. - Étrangement, la taille des fichiers de l’archive Safari et de l’archive textutil est très similaire, je suppose donc que l’archive textutil Est-ce que contient l'image, elle n'est simplement pas référencée correctement pour le rendu ...
halloleo
Eh bien, c’est le cas (vous pouvez vérifier auprès de plutil -p WEBARCHIVE ). Je n'ai cependant pas examiné les différences.
nohillside
@patrix Intéressant! Thx pour le pointeur à plutil (Je savais que les archives Web utilisaient la plist format, mais ne pense pas à les analyser avec plutil.Enquêtera plus en détail.
halloleo

Réponses:

1

Utilisez l'outil webarchiver (que vous pouvez installer via brew install webarchiver ):

webarchiver -url sample.html -output sample.webarchive

La Webarchive produite contient l'image et Safari affiche l'image quand il affiche la Webarchive.

halloleo
la source
-2

Je pense que la ligne de commande n'a pas conscience de l'inclusion d'une image.

J'ai testé une simple page Web avec image + texte et l'ai ouverte avec Safari.

Si vous choisissez Fichier - & gt; Enregistrer sous .. 'Webarchive' vous pouvez voir dans la Webarchive créée que l'image est ajoutée à la fin du fichier.

Il est évident que Safari utilise une fonction interne Swift / Objective-C pour implémenter l’image.

Si vous choisissez d’obtenir le code HTML et d’avoir l’image comme référence, elle semble ignorer l’image et ne produire que le texte (via textutil).

Je ne m'appuierais pas sur les archives Web lors du téléchargement de pages Web - utilisez plutôt wget ou curl ou des grattoirs comme scrapy / beautifulSoup et téléchargez-les.

Je sais qu’il est pratique d’avoir un fichier, mais ce n’est pas la meilleure façon de sauvegarder des images, ce qui rend difficile leur extraction par la suite.

rwenz3l
la source
Merci d’avoir examiné la question, mais si j’ai bien compris, votre "réponse" énonce principalement mon problème: celui de "la ligne de commande", c.-à-d. textutil ne peut pas créer une archive Web appropriée - du moins pas comment je l'appelle. Je suis après un outil de travail / procédure pour la ligne de commande faire exactement cela.
halloleo