Automator

Automator

想保存一个网站上的电子书成为PDF格式。因为既不想写脚本来手动构建网络请求,又不愿意写脚本用无头浏览器模拟用户交互操作,所以今天学会了macOS上Automator的基本操作。

过去常用Windows系统时,遇到这样的需求,一般都会用AutoHotkey或是更土一点的“按键精灵”软件来实现。不得不说,尽管按键精灵的程序十分臃肿,界面也相当落伍,但是干起活来快糙猛。往往在通过别的途径实现用户图形界面自动化,还在探索怎么设置软件或者搭建脚本环境时,用按键精灵已经完事儿了。然而,现在主力机用Mac,也就懒得再去Windows下载绿色安装设置去广告一大套,想办法看能不能用其他方法实现。

很早就听说过macOS上的Automator这个软件,支持相当多的系统操作和模拟功能:不仅支持类似于微软的“宏”操作,也支持通过AppleScript来精确控制自动化的行为,还从iOS的“捷径”应用中吸收了许多功能改进。需求这么简单,用按键精灵估计十分钟就能设置好,用它应该也不难吧?

还是天真了。花了大概一个多小时,才勉强做出一个“工作流程”来实现保存PDF的操作。

下载电子书

头一遭困难是Chrome的兼容性很差。遇到各种莫名其妙的错误以后上网一搜,人家说还是得Safari好办。没辙,恭敬不如从命,切换到Safari。

其次发现鼠标指针移动操作在AppleScript里面支持得并不好。这也难不倒我,GUI操作部分使用“录像重放”的工作流步骤,而保存文件部分则用AppleScript来控制。

而后发现无法读取变量。因为我希望在保存文件时,文件名插入一个当前时间的自增变量,方便后期排序和处理。自己试了半天也不成,网上搜完才发现还需要类似于shell一样传参赋值,而不能直接从GUI里默认取得。

吭哧半天自动化流程终于跑了起来。本着报错就加延时的方法,竟也磕磕绊绊地达到了我所需的目标。还是挺高兴的,不用安装第三方软件就能实现程序控制的自动化,也没有特别令人骂街的疑难杂症,苹果传统的桌面软件差强人意。AppleScript既好用又难用,优点在于脚本非常易读,几乎能按自然语言阅读就理解其流程;坏处在于书写格式比较自由,不像经典的脚本语言那样面向流程,一板一眼。

如果下次还有类似这种批量下载的需求,Automator不失为一个可以尝试的选择。

Chen Ting

Chen Ting

The page aimed to exhibit activities & achievements during Ting's undergraduate & graduate period. Meanwhile, other aspects such as lifestyles, literary work, travel notes, etc. would interweave in the narration.

Leave a Comment

Disqus might be GFW-ed. Excited!