¿AppleScript para guardar la ventana actual de Safari en formato webarchivo?

7

Sin usar scripts de GUI , ¿cómo puedo usar AppleScript para decirle a Safari que guarde la página actual del navegador en un archivo en formato webarchive? Lo siguiente produce un error "The document “...” could not be exported as “foo.webarchive” (donde "..." es el título de la página web actual, cualquiera que sea):

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

He intentado variaciones en esto, como diferentes extensiones de nombre de archivo (por ejemplo, .html ) para ver si algo funciona, pero siempre surge un error. He intentado diferentes formas de especificar el nombre del archivo, pero eso también produce errores (de un tipo diferente). He intentado usar save ... as ".webarchive" en lugar del simple save anterior, pero eso produce un error diferente sobre "el documento 1 no entiende el mensaje de guardado".

El diccionario AppleScript para Safari 11 tiene esta descripción:

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.

Esto implica que debería ser posible guardar la página web actual en un formato específico entendido por Safari (como, con suerte, webarchivo), y que simplemente no he descubierto la sintaxis correcta.

    
pregunta mhucka 09.12.2017 - 03:06

1 respuesta

4

He creado un script empaquetado que guarda la pestaña actual en el escritorio como un archivo web. Crédito a newzealandpaul por su webarchiver comando de shell que alimenta este guión. Puede modificar el código para que se ajuste a sus necesidades específicas, pero esto debería hacer lo que el código en su pregunta está tratando de hacer.

Aquí está el guión incluido: SaveWebarchive

Esto funciona con el comando webarchiver incluido;

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"

Tenga en cuenta que la secuencia de comandos descargada puede tener la interfaz del Editor de secuencias de comandos que muestra el registro en toda la ventana.

    
respondido por el Jake3231 12.12.2017 - 00:52

Lea otras preguntas en las etiquetas