получить Safari и Chrome открытые вкладки на Mac с Appcelerator - PullRequest
3 голосов
/ 18 декабря 2011

Мне нужно прочитать URL открытых вкладок в Safari, Chrome и Firefox (опционально) и превратить их в массив.Я использую Titanium Appcelerator для разработки приложения Dektop (http://developer.appcelerator.com/apidoc/desktop/latest) и оно поддерживает Python. Это также можно сделать, вызвав AppleScript, который возвращает то, что я ищу. Например, этот простой AppleScript показывает, что я ищу

tell application "Safari"
    get URL of every tab of every window
end tell

Теперь, как я могу назвать это из Python или JavaScript (я не знаю, возможно ли это с помощью JavaScript)?

У кого-то есть отличная идея? Спасибо!

Ответы [ 2 ]

3 голосов
/ 19 декабря 2011

Вы можете просто встроить AppleScript в скрипт Python, например, так:

import os
cmd = """osascript -e 'tell application \"Safari\" to get the URL of every tab of every window'"""
def url():
    os.system(cmd)
url()

Надеюсь, это поможет!

3 голосов
/ 19 декабря 2011

Есть два способа сделать это через python ...

1. (Мои предпочтения) Установить appscript: pip install appscript

import appscript
urls = appscript.app('Safari').windows.tabs.URL()

2. Выложить в командную строкуи вызвать osascript:

from subprocess import Popen, PIPE 
cmd = "/usr/bin/osascript -e 'tell application \"Safari\"' -e 'get URL of every tab of every window' -e 'end tell'"
pipe = Popen(cmd, shell=True, stdout=PIPE).stdout
urls = pipe.readlines()
...