使用applescript从网页获取数据

时间:2014-08-15 20:46:07

标签: html ios macos applescript

我正在研究我的第一份苹果。我通过Safari打开一个网页,例如:Evernote页面 - https://itunes.apple.com/us/app/evernote/id281796108我希望得到版本,它的最新更新日期位于页面的左侧,即在“类别”下的应用程序的图像徽标下“它是”更新“和”版本“。

以下是我正在处理的脚本:

tell application "Safari"
    open location "https://itunes.apple.com/us/app/evernote/id281796108?"
    activate
end tell


tell application "System Events"
    tell process "Safari"
        -- Add the logic to get the updated date and version.
    end tell
end tell

是否可以通过AppleScript从网页获取数据?

2 个答案:

答案 0 :(得分:0)

这是一个适用于Applescript的方法。可能不是迄今为止最好的,而是一个开始。

set source_code to do shell script "curl https://itunes.apple.com/us/app/evernote/id281796108"
set int_1 to offset of "class=\"label\">Updated: </span>" in source_code
set int_2 to offset of "<span class=\"label\">Version: </span>" in source_code
set Update_date to characters (int_1 + 30) thru (int_1 + 41) in source_code as string
set Version_text to characters (int_2 + 36) thru (int_2 + 40) in source_code as string

get Update_date & " - " & Version_text

更直接和多样化的方法可能是:

set hyperlink to "https://itunes.apple.com/us/app/evernote/id281796108"

do shell script "curl " & quoted form of hyperlink & " | grep -o 'class=\"label\">Updated: </span>[A-Za-z0-9, ]\\{0,\\}</li><li><span class=\"label\">Version: </span>[0-9 .]\\{0,\\}' | sed 's/class=\"label\">Updated: <\\/span>//g' | sed 's/<\\/li><li><span class=\"label\">Version: <\\/span>/ - /g'"

您可以将Var hyperlink替换为iTunes商店中的任何应用程序,它应该可以正常工作。

答案 1 :(得分:0)

使用AppleScript操作网页的方法是使用AppleScript命令“do javascript”在网页上运行JavaScript。 JavaScript是为操作Web页面而设计的,因此它拥有所有正确的工具来获取文本节点的值或者您想要做的任何事情。

How to grab HTML snippet via Applescript with Javascript