Sem usar o script da GUI , como posso usar o AppleScript para dizer ao Safari para salvar a página atual do navegador em um arquivo no formato webarquivo? A seguir, "The document “...” could not be exported as “foo.webarchive”
ocorre um erro (onde "..." é o título da página da Web atual, seja ela qual for):
set the_filepath to "/tmp/foo.webarchive"
tell application "Safari"
activate
save document 1 in the_filepath
end tell
Eu tentei variações sobre isso, como diferentes extensões de nome de arquivo (por exemplo, .html
) para ver se alguma coisa funciona, mas sempre surge um erro. Eu tentei maneiras diferentes de especificar o nome do arquivo, mas isso também produz erros (de um tipo diferente). Eu tentei usar em save ... as ".webarchive"
vez do simples save
acima, mas isso produz um erro diferente sobre "o documento 1 não entende a mensagem salva".
O dicionário AppleScript para Safari 11 tem esta descrição:
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.
Isso implica que deve ser possível salvar a página da web atual em um formato específico entendido pelo Safari (como, esperançosamente, arquivador da web), e que eu simplesmente não entendi a sintaxe correta.
fonte
save
deve aceitar um argumento "como formato ", por isso espero que realmente funcione e que simplesmente não tenha descoberto a sintaxe correta."webarchive"
e"Web Archive"
?as "formatname"
(qualquer que seja o "nome do formato" que tento), o AppleScript Editor relataerror "Safari got an error: document 1 doesn’t understand the “save” message." number -1708 from document 1
.save
comando AppleScript do Safari está quebrado. Eu tentei uma nuasave document 1
. Embora tenha aberto a caixa de diálogo Salvar, anexou .css ao nome do documento em vez de .webarchive. Mesmo que a opção de formato na parte inferior da caixa seja "Arquivo da Web". Em seguida, ao pressionar Salvar, recebi o mesmo erro de "não foi possível exportar" e o código de erro 10000 (Falha no manipulador de eventos da Apple). Além disso, depois de executar o script, o menu suspenso Formato na caixa de diálogo Salvar desapareceuRespostas:
Eu criei um script em pacote que salva a guia atual na área de trabalho como um arquivo da web. Agradecemos a newzealandpaul por seu comando shell do webarchiver que alimenta esse script. Você pode ajustar o código para atender às suas necessidades específicas, mas isso deve fazer o que esse código na sua pergunta está tentando fazer.
Aqui está o script incluído: SaveWebarchive
Isso funciona com o comando webarchiver incluído;
Observe que o script baixado pode ter a interface do Editor de scripts mostrando o log na janela inteira.
fonte
webarchiver
e o construo e descobri que já havia feito isso antes em setembro. Prefiro ler o código-fonte e criar o executável versus um executável pré-criado quando realmente não conheço a fonte. De qualquer forma, tenho que admitir que, depois de ler o OP, concentrei-me no uso dosave
comando e esqueciwebarchiver
. Funciona muito bem e, embora não seja minha pergunta, ainda darei um +1 para a resposta!.command
ao final do arquivo e colocá-lo no mesmo local que eu forneci.webarchiver
seja definida como executável. Não testei no AppleScript porque o usei em setembro no Terminal em um script do bash, exatamente comowebarchiver
é assim que sei que funciona bem.webarchiver
de uma maneira ainda melhor, eu adoraria saber como você faz isso!webarchiver -url http://www.google.com -output google.webarchive
, mas tokenizei o comando para que, quando o script leu o arquivo que percorreu o arquivo URLs. Apenas coisas realmente básicas. Eu tinha esquecido tudo até você postar sua resposta à pergunta de Muck.