[在Mac上使用Appcelerator获取Safari和Chrome打开的标签页

问题描述 投票:4回答:2

我需要阅读Safari,Chrome和Firefox(可选)中打开的标签页URL,并将它们转换为数组。我正在使用Titanium Appcelerator to develop a Dektop Application,它支持Python。

也可以通过调用返回我要寻找的AppleScript来完成。例如,这个简单的AppleScript显示了我正在寻找的内容

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

现在如何从Python或JavaScript调用它(我不知道JavaScript是否可行)?

有人有个好主意吗?谢谢!

python safari applescript titanium appcelerator
2个回答
3
投票

有两种方法可以通过python做到这一点...

1.(我的偏好)安装应用程序脚本:pip install appscript

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

2.Shell进入命令行并调用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()

3
投票

您可以像这样将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()

我希望这会有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.