刚用上Macbook,发现了Automator这个神器,可以自动化帮你处理很多事情,这个文章直接讲实例,这样容易理解 :)
举个例子:想象你自己是个机器人,只能按照指令执行命令。那么当你收到了下面这个指令之后会怎么做?
指令:看看优酷上有没有“权利的游戏”这个电影。
A. 理想化的实现步骤:
分解动作1. 打开优酷网页
分解动作2. 输入关键字“权利的游戏”
分解动作3. 点击搜索,然后页面就能显示出来结果了。
理想情况下,按照上面的指令找到Automator Library中提供的Action就行了,可惜小Automator机器人没有那么那么智能,比如:打开优酷网页之后,它怎么知道搜索框在哪里呀?除非网页打开后默认自动定位搜索框。
所以呀,既然咱要在苹果的Automator里面实现这个操作,就得把那条指令变成Automator能够实现的分解动作,经过研究以下步骤可行:
B. 第一次修改后的实现步骤:
分解动作1: 提供优酷的搜过结果URL。说说为啥要打开搜索结果页面呢?因为我在打搜索URL的主意 ^_^ 经过摸索,如果在优酷搜索什么东西,最后打开的页面URL都是:“http://www.soku.com/search_video/q_你输入的关键字”,所以我就想了,如果我直接让浏览器打开这个页面,不就妥了吗?
分解动作2: 好了现在知道URL了,这一步就用浏览器打开这个搜索结果页面吧。
好了,现在看看Automator的Library里有哪些Action可以和分解动作们匹配的?
分解动作1: Text -> Get Specific Text,这个动作可以让你配置好你想显示的URL,例如“http://www.soku.com/search_video/q_权力的游戏”。
分解动作2: Internet ->Display Webpages,无需配置,拖拽过来即可使用。
搞定。
不过可惜,我要的不是如此简单的一个功能,我想要的是:当我想看一个电影时,我把所有热门影视网站都搜索一遍!(此需求源自于平日里找电影的痛苦,暴风里找下,没有。搜狐里找下,没有。爱奇艺里找下。。。优酷里找下。。。然后。。。然后就不想看了,饭都凉了,赶紧吃饭吧 T_T)
那么,Automator机器人是否能满足我的愿望呢?我们来分析一下,这个愿望有啥特点没?
特点1: 每次你想搜索的关键字都是不一样的,所以上面配置固定的URL就行不通了。
首先得让你每次输入才行。然后就在Library里的Text里找呀找呀,呀!真被我找到一个,叫”Ask for Text”,这个Action就是弹出一个对话框,想搜啥影片直接输入就好。输入的结果会返回给下一个Action。
特点2:URL得“拼装”了,由两部分组成,第一部分每个影视网站都是固定的,例如优酷就是:“http://www.soku.com/search_video/q_“,爱奇艺就是:“http://so.iqiyi.com/so/q_”。问题是如何拼装,Library里Text目录下没有找到可以拼装URL的Action,这个时候我气死了都要,后来被逼无奈,耍起了做编程时用的Javascript。。。哈哈哈~~~
代码如下:
function run(aaa) {
return "http://www.soku.com/search_video/q_" + aaa;
}
那个aaa是啥涅?就是“Ask for Text”里你输入的值呀,通过aaa传递给了run这个参数,和前面的固定URL拼接在一起形成了我们要的返回结果的URL。
我们用 Utilities -> Run JavaScript 这个Action来容纳上面的代码。
特点3: 你不再是搜一个网站就满足了,你要搜好多好多网站,所以这个步骤要循环。本来应该挺简单个事儿,就是多拖拽这些Action几次就好了,可惜尝试下来发现,会出错,第一个网站总是能正常运行,第二个网站搜索的关键字就变成前一个网站的URL了。这是咋回事儿呢?原来呀,每个Action都会从上一个Action那里得到一个返回的结果,对于Display Webpages这个Action来说,返回结果就是URL。不过好在,每个Action都可以选择,是否从上一个指令那里得到返回结果,我们选择“Ignore Input”。
这又引发了另一个问题,不提供任何输入,Run JavaScript怎么知道aaa是啥呀?于是我又小聪明了一下,干脆把 “Ask for Text”里的值,copy到剪贴板上好了,Action叫“Copy to Clipboard”,然后每次都从剪贴板上获取aaa,Action叫“Get Contents of Clipboard”。
就这样子,这就是整体思路,好了,我们来整理一下,最后这次修改过后的实现步骤是怎样的?
C. 最终的实现步骤:
分解动作1: 输入搜索的关键字 (Text -> Ask for Text)
分解动作2: 拷贝到剪贴板 (Utilities -> Copy to Clipboard)
分解动作3: 拼装URL (Utilities -> Get Content of Clipboard,这个Action要“Ignore Input")
分解动作4: 用网页显示URL (Internet -> Display Webpages)
然后以上过程反复拖拽N次,把所有网站都配全了,嘎嘎嘎。老公想看“夏洛特烦恼”,我立马用上了,搜的是挺爽的,刷刷刷全出来了,什么优酷搜狐爱奇艺暴风腾讯芒果。。。一个不落,就是。。。没有一个可以免费观看的片源。。。
很实用,研发过程耗时3小时,想分享自己创建的文件,可惜这里没有上传的功能呀,一个一个加也是够累的了。。。奉献给吃饭前总是想找个片儿当配菜的你 :-)