8 votes

AppleScript pour enregistrer la fenêtre Safari en cours au format webarchive ?

Sans utiliser de script GUI Comment puis-je utiliser AppleScript pour dire à Safari pour enregistrer la page actuelle du navigateur dans un fichier au format webarchive ? L'opération suivante produit une erreur "The document “...” could not be exported as “foo.webarchive” (où "..." est le titre de la page web en cours, quel qu'il soit) :

set the_filepath to "/tmp/foo.webarchive"
tell application "Safari"
    activate
    save document 1 in the_filepath
end tell

J'ai essayé des variantes, comme des extensions de nom de fichier différentes (par exemple , .html ) pour voir si quelque chose fonctionne, mais une erreur se produit toujours. J'ai essayé différentes façons de spécifier le nom du fichier, mais cela produit également des erreurs (d'un autre type). J'ai essayé d'utiliser save ... as ".webarchive" au lieu du simple save ci-dessus, mais cela produit une erreur différente : "le document 1 ne comprend pas le message d'enregistrement".

Le dictionnaire AppleScript pour Safari 11 contient cette description :

save v : Save a document.
  save specifier : The document(s) or window(s) to save.
    [in file] : The file in which to save the document.
    [as saveable file format] : The file format to use.

Cela implique qu'il devrait être possible de sauvegarder la page web en cours dans un format spécifique compris par Safari (comme, espérons-le, webarchive), et que je n'ai tout simplement pas trouvé la bonne syntaxe.

3voto

jsimmons Points 464

J'ai créé un script groupé qui enregistre l'onglet en cours sur le bureau en tant qu'archive web. Crédit à newzealandpaul pour son archiveur web commande shell qui alimente ce script. Vous pouvez modifier le code pour l'adapter à vos besoins spécifiques, mais il devrait faire ce que le code de votre question essaie de faire.

Voici le script fourni : SauverWebarchive

Cela fonctionne avec le archiveur web en paquet ;

set fileName to "foo"

tell application "Safari" to set targetURL to (URL of document 1) as string
set commandPath to POSIX path of (path to resource "webarchiver.command")
do shell script "" & commandPath & " -url " & targetURL & " -output ~/Desktop/" & fileName & ".webarchive"

Notez que le script téléchargé peut avoir l'interface de l'éditeur script affichant le journal sur la totalité de la fenêtre.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X