AppleScript per salvare la finestra corrente di Safari nel formato webarchive?

7

Senza utilizzare lo scripting della GUI , come posso utilizzare AppleScript per dire a Safari di salvare la pagina corrente del browser in un file in formato webarchive? Quanto segue produce un errore "The document “...” could not be exported as “foo.webarchive” (dove "..." è il titolo della pagina Web corrente, qualunque essa sia):

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

Ho provato varianti su questo, ad esempio estensioni di nomi di file diversi (ad es. .html ) per vedere se qualcosa funziona, ma si verifica sempre un errore. Ho provato diversi modi di specificare il nome del file, ma questo produce anche errori (di un tipo diverso). Ho provato a utilizzare save ... as ".webarchive" invece del semplice save sopra, ma questo produce un errore diverso su "il documento 1 non capisce il messaggio di salvataggio".

Il dizionario AppleScript per Safari 11 ha questa descrizione:

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.

Questo implica che dovrebbe essere possibile salvare la pagina web corrente in un formato specifico compreso da Safari (come, si spera, webarchive), e che semplicemente non ho capito la sintassi corretta.

    
posta mhucka 09.12.2017 - 03:06
fonte

1 risposta

4

Ho creato uno script in bundle che salva la scheda corrente sul desktop come un webarchive. Credito a newzealandpaul per il suo comando webarchiver che alimenta questo script. Puoi modificare il codice per soddisfare le tue esigenze specifiche, ma questo dovrebbe fare ciò che quel codice nella tua domanda sta cercando di fare.

Ecco lo script in bundle: SaveWebarchive

Funziona con il comando webarchiver in bundle;

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"

Si noti che lo script scaricato potrebbe avere l'interfaccia di Script Editor che mostra il Log sull'intera finestra.

    
risposta data 12.12.2017 - 00:52
fonte

Leggi altre domande sui tag