Сохранить исходный код открытой веб-страницы из Safari с помощью AppleScript.

Как я мог написать сценарий th at сохраняет веб-страницу, открытую в Safari, по какому-то пути?

(Код будет использоваться для более сложного сценария позже, поэтому непонятное решение, использующее системные события, не подойдет.) Много гуглил, чтобы найти сценарий, который использует функция сохранения исходного кода оставила меня довольно неинформированным, поэтому ответ на этот вопрос может быть первым в Интернете. Я вставил кое-что, что может быть полезно ниже.

Потенциально полезный материал

Эти две записи из словаря AppleScript для Safari выглядят полезными:

документ n [см. Также Standard Suite]: документ Safari, представляющий активную вкладку в окно.

свойства:

  • источник (текст, r / o): HTML-источник веб-страницы, загруженной в данный момент в документ.
  • текст (текст, r / o): текст веб-страницы, загруженной в данный момент в документ. Изменения текста не отражаются на веб-странице.
  • URL (текст): текущий URL документа.

и более поздние версии:

сохранить v : сохранить объект.

сохранить спецификатор : объект для команды

  • [ как текст]: тип файла, в котором нужно сохранить данные.
  • [ в псевдониме]: файл, в котором нужно сохранить объект.

Скрипт, который почти делает то, что я хочу

Этот скрипт сохраняет HTML-документ, но результат выглядит некорректным по сравнению с файлами, сохраненными с помощью функции Safari «Экспорт как источник страницы» вручную:

tell application "Safari"
(* Get a reference to the document *)
set myDoc to document of front window

(* Get the source of the page *)
set mySrc to source of myDoc

(* Get a file name *)
set myName to "Message_" & "0001" & ".html" -- the # will be modified later

tell application "Finder"
    (* Get a path to the front window *)
    set myPath to (target of front window) as string

    (* Get a file path *)
    set filePath to myPath & myName

    (* Create a brand new file *)
    set openRef to open for access (myPath & myName) with write permission

    (* Save the document source *)
    write mySrc to openRef

    (* Close the file *)
    close access openRef
end tell

Это то, что я я уже написал:

Сценарии, которые я написал до сих пор

  1. Это моя первая попытка:

     сообщить приложению "Safari" 
    установить pageToSaveSafariWindowIn на "Q: Ø:" {{1} } установить pageToBeSaved в переднее окно 
    сохранить документ pageToBeSaved как источник в псевдониме pageToSaveSafariWindowIn 
    end tell 
     

    Вот итоговые журналы:

     сообщить приложению "Safari" {{ 1}} получить окно 1 
     -> идентификатор окна 6017 
    сохранить документ (идентификатор окна 6017) как источник в псевдониме "Q: Ø:" 
     -> номер ошибки - 1700 с идентификатора окна 6017 на целое число 
     

    и

    ошибка «Safari обнаружила ошибку: не удалось преобразовать идентификатор окна 6017 в целочисленный тип». число -1700 от идентификатора окна 6017 до целого числа

  2. И еще одна попытка:

     сообщить приложению "Safari" 
    сохранить источник документа в "Q: Ø:" 
    конец сказать {{1 }} 

    , который дает журнал результатов:

    ошибка «Не удается получить источник документа». номер -1728 из «класса КОНТ» документа

5
задан alexwlchan 25 July 2014 в 09:17
поделиться