Как сохранить список открытых вкладок Safari в текстовом файле?

Я открываю много важных для меня вкладок. Нет ли более простого способа установить что-то, что создает файл TextEdit на моем рабочем столе со всеми открытыми URL-адресами?

В прошлом я использовал SafariTabsListDs Eelee, но это больше не работает.

Можете ли вы помочь мне с чем-то, что я могу использовать для повторного открытия вкладок, которые я хочу, после их закрытия?

Ответы (4)

Следующий пример кода AppleScript запишет URL -адрес каждой вкладки каждого окна Safari в файл с именем MyURLs.txt на вашем рабочем столе :

set myURLs to {}
tell application "Safari" to set myURLs to the URL of every tab of every window
set text item delimiters to linefeed
set myURLs to myURLs as text
set text item delimiters to {}
if not myURLs is equal to "" then
    do shell script "echo " & myURLs's quoted form & "> $HOME/Desktop/MyURLs.txt"
end if

Чтобы открыть URL-адреса , например, в MyURLs.txt, вы можете использовать, например:

set myURLs to {}
try
    set myURLs to paragraphs of (do shell script "cat $HOME/Desktop/MyURLs.txt")
end try
if not myURLs is equal to {} then
    repeat with thisURL in myURLs
        open location thisURL
    end repeat
end if
  • В приведенном выше примере кода AppleScript предполагается , что Safari является вашим веб-браузером по умолчанию.

Примечание. Пример кода AppleScript является именно этим и не содержит какой-либо дополнительной обработки ошибок , которая может быть уместной. Пользователь несет ответственность за добавление любой обработки ошибок , которая может быть уместной, необходимой или желаемой. Посмотрите оператор try и оператор error в Руководстве по языку AppleScript . См. также Работа с ошибками . Кроме того , может потребоваться использование команды задержки между событиями, где это уместно, например , с соответствующим значением задержки . delay 0.5

Перечислите URL-адреса всех вкладок в самом переднем окне:

osascript -e{'set text item delimiters to linefeed','tell app"safari"to(url of tabs of window 1)as text'}

Список URL всех вкладок во всех окнах:

osascript -e{'set text item delimiters to linefeed','tell app"safari"to(url of tabs of windows)as text'}

Перечислите URL-адрес и название всех вкладок в самом переднем окне:

osascript -e{'set o to""','tell app"safari"','repeat with t in tabs of window 1','set o to o&url of t&" "&name of t&"\n"',end,end,o}|sed \$d

Вы должны сначала посмотреть на доступные варианты, которые могут сделать требуемое.

  • Проще всего история: Нажав command+ Yможно получить список посещенных сайтов, который можно отсортировать по времени. Кроме того, если вы выберете несколько сайтов, используя shift+click или command+click или shift+ up/ downстрелку , вы можете открыть их все за один раз. Вы также можете скопировать все выбранные элементы, вставить в заметку в приложении Notes, и вы получите ссылки.
  • Закладки или список для чтения: Safari дает возможность в меню «Закладки» добавить все вкладки в окне, которые будут добавлены в «Закладки» или в список для чтения. Однако вам нужно будет периодически очищать их. Но хорошая часть заключается в том, что вы также можете экспортировать это, используя меню «Файл»> «Экспортировать закладки» в файл HTML, по которому легко щелкать ссылки.

Если вы беспокоитесь, что потеряете сеанс при закрытии Safari, вам следует сделать следующее: Откройте системные настройки > Общие и снимите флажок «закрывать окна при выходе из приложения».

введите описание изображения здесь

Теперь вы можете выйти из сафари, используя command+ Q&, когда вы откроете его позже, появятся все вкладки и окна, в том числе в приватном режиме.

AppleScript также может сохранять URL всех открытых вкладок во всех окнах в текстовый файл. Хорошая отправная точка:

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

    set currentDate to do shell script "date +%Y-%d-%m"
    --display dialog currentDate
    set theDialogText to "Write Safari tab URLs to a Desktop text file ...
    Select only the foremost window, or all windows"
    display dialog theDialogText buttons {"cancel", "window 1", "all windows"} default button "window 1" cancel button "cancel"
    set BUTTON_Returned to button returned of result
    set myURLs to {}
    if BUTTON_Returned is "window 1" then
        tell application "Safari" to set myURLs to the URL of every tab of (window 1)
    end if
    if BUTTON_Returned is "all windows" then
        tell application "Safari" to set myURLs to the URL of every tab of (windows)
    end if
    set text item delimiters to linefeed
    set myURLs to myURLs as text
    set text item delimiters to {}
    if not myURLs is equal to "" and BUTTON_Returned is "window 1" then
        do shell script "echo " & myURLs's quoted form & "> $HOME/Desktop/MyURLs.txt"
        --set filename of "~/Desktop/MyURLs.txt" to currentDate & " " & "myURLs.txt"
    end if
    if not myURLs is equal to "" and BUTTON_Returned is "all windows" then
        do shell script "echo " & myURLs's quoted form & "> $HOME/Desktop/MyURLs++.txt"
    end if