Sin usar scripts de GUI ¿Cómo puedo usar AppleScript para decir Safari ¿Guardar 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, sea cual sea):
set the_filepath to "/tmp/foo.webarchive"
tell application "Safari"
activate
save document 1 in the_filepath
end tell
He probado variaciones de esto, como diferentes extensiones de nombres de archivos (por ejemplo, .html
) para ver si algo funciona, pero siempre se produce un error. He probado diferentes formas de especificar el nombre del archivo, pero eso también produce errores (de otro tipo). He probado a utilizar save ... as ".webarchive"
en lugar de la simple save
arriba, pero eso produce un error diferente sobre "el documento 1 no entiende el mensaje de guardado".
El diccionario de 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 que entienda Safari (como, con suerte, webarchive), y que simplemente no he averiguado la sintaxis correcta.
0 votos
Si no puedes encontrar otra forma que no sea a través de UI Scripting, aquí tienes un buen ejemplo de ello. AppleScript: Safari - Guardar como archivo web
0 votos
@user3439894 Gracias. Por desgracia, estoy intentando automatizar un flujo de trabajo más complicado, y necesito controlar cosas como dónde escribe el archivo. El diccionario de AppleScript para Safari implica que
save
debe aceptar un "como formato ", así que sigo esperando que realmente pueda funcionar y que simplemente no haya descubierto la sintaxis correcta.0 votos
¿Has probado variaciones como
"webarchive"
y"Web Archive"
?0 votos
@BallpointBen Sí; en cuanto añada
as "formatname"
(sea cual sea el "formatname" que pruebe), el Editor de AppleScript informaerror "Safari got an error: document 1 doesn’t understand the “save” message." number -1708 from document 1
.0 votos
@mhucka Tuve el mismo problema.. He publicado un paquete script que incluye el comando webarchiver de newzelandpaul que logra el comportamiento previsto.
1 votos
Creo que el AppleScript de Safari
save
el comando está roto. He probado con unsave document 1
. Si bien es cierto que aparece el cuadro de diálogo para guardar, añade .css al nombre del documento en lugar de .webarchive. A pesar de que la opción de formato en la parte inferior del cuadro era "Web Archive". Luego, cuando le di a guardar, obtuve el mismo error de "no se pudo exportar" y el código de error 10000 (Apple Event Handler Failed). Además, después de ejecutar el script, el menú desplegable de Formato en el cuadro de diálogo de guardar desapareció0 votos
Si te apetece comprar una solución potencial, DevonThink puede ser programado para crear un archivo web. Lamentablemente, aún no he podido conseguir que se registre en una página. Voy a intentar más mañana o el miércoles.
0 votos
@Bruce ¡Gracias por tus esfuerzos! En realidad tengo DEVONthink Pro y lo uso constantemente. La razón por la que hago la pregunta es que estoy tratando de lidiar con sitios web de pago. Necesito que Safari sea el programa que cree el archivo porque es el que tiene las cookies de sesión.
0 votos
@mhucka En realidad pude entrar en un sitio de pago dentro de DEVONthink utilizando la página de ayuda de esta entrada en su blog . Sin embargo, no parece que DEVONthink utilice las cookies de esa sesión de navegación cuando crea el archivo web.