【065】11周 App Store 首页题图很好看,把它们下载来当壁纸 | Workflow 定制 004

kx8020
2017年10月30日

App Store 首页题图很好看,把它们下载来当壁纸 | Workflow 定制 004

| 本文为付费栏目文章,您已订阅,可阅读全文 |
前些日子逛 App Store 时,发现 App Store 首页 App Of The Day 等专题的背景图大都很漂亮,拿来当壁纸是完全没问题的,比如下面这张厨房故事的背景图。

厨房故事在 App Store 的题图和完整版本
尝试利用某个不存在的网络调试工具抓了一下包,很轻松就把需要的图片给抓出来了。

Sxxge
当我把这件事儿发到社交网络上之后,得到了一些朋友的回应。其中有部分朋友不太会使用这类网络调试工具,感到很困惑。后来经 @文刀漢三 提醒才发现,原来 App Of The Day 这类专题都是有分享链接的,在页面的最下方可以使用 Share Sheet 将专题页面分享出去。这就好办了,利用 Workflow 分析网页的 HTML 代码,就能够将特定的资源抓取出来了。

从底部的分享菜单运行 Workflow

分析网页代码

这个 Workflow 需要在 Share Sheet 中运行,并且是从网页中抓取特定的资源,那首先要做的就是先获取网页链接及其源代码。
这里需要用到 Get Contents of URL 将网页下载下来,并通过 Make HTML from Rich Text 把网页转换成 HTML 文档,通过查找 HTML 文档中的相应字段,来获取特定资源的下载链接。直接通过 Quick Look 来阅读 HTML 文档太麻烦了,可以考虑将文档发送到电脑上,使用专门的编辑器来阅读、查找,会方便很多。

本例中是需要获取图片资源,因此查找的关键字都是图片的后缀名,比如 .jpg, .jpeg, .png。最后发现 HTML 文档中有许多 .jpg 结尾的链接,其中的某个链接可能就是我们需要的背景图下载链接。

分析处理链接

前文中查找到的图片链接都是 https://abcde12345.jpg 这种格式的,使用 Match Text 动作配合简单的正则表达式就能将所有这类型的链接抓取出来。这里用到的正则表达式是 https://(.+?)\.jpg, 其中的关键部分在于小括号中包含的内容。

英文句号 . 表示匹配除了换行符 \n 之外的任意字符,比如字母、数字、符号等等,符合本例中的需求;加号 + 表示匹配前面的表达式一次或多次,本例中链接是由一堆字母、数字、英文句号组成的,因此需要匹配多次;最后的问好 ? 表示非贪心量化,尽可能少的匹配所搜索的字符串。
如前文所说,英文句号 . 表示匹配除了换行符 \n 之外的任意字符,但此时我们需要它在正则表达式中表示它原有的意思,不去匹配字母、数字、符号,这就需要在英文句号 . 前面加上一个反斜杠 \ 来实现了。同理,如果某些时候我们需要在正则表达式中匹配加号 +, 那就需要通过使用反斜杠加上加号 \+ 来实现了。
有关正则表达式的更多介绍,可以查看维基百科上的相关页面。
获取到全部图片的下载链接后,发现这些链接 https://.jpg 中间夹着的部分,都是一致的,随便拿一个来用都行。但需要注意的是,.jpg 前面的 1200x600 代表下载下来的图片的分辨率,默认的这个分辨率拿来当壁纸可是远远不够的啊。经过测试发现,把这个参数改得大一些,Apple 的服务器就会提供分辨率更高的图片,最高能达到 4K 级别。

这里使用 Replace Text 动作加上正则表达式来查找并替换链接中的分辨率参数,为了获取最大的分辨率,本例中将参数设置成了 5000x5000(最终实际下载的图片还是 4K 分辨率的)。

此处正则表达式中的 \d 表示匹配一个数字字符,后面加上加号 + 表示前面这个 \d 要匹配至少一次。x 就是小写英文字母 x。
最终将处理好的图片链接下载下来,存入相册,就达成目标了。

结语

一个原本比较复杂的操作流程,经过各种动作的组合变形,最终实现一键操作,这就是 Workflow 的魅力和便利。
本例中所讲的只是 Workflow 一个相对基础的应用场景。经过长时间的练习,思考适合自己的应用场景,最终一定能激发出 Workflow 更大的潜力。

上一期
iOS 11 中的 HEIF 与 HEVC 是什么 | 科普
下一期
Copied 进阶篇:当零碎内容遇上自动化
 
精选评论(2) 我的评论
  • leoappfans
    怎么保存的专题封面的视频?有些视频很有创意想保存下来。
    04月27日
    • 少数派编辑部
      你好,用这个动作就能下载视频了:https://workflow.is/workflows/4ee7ce600dd04b1aa29c7efc993428c7
      04月27日
  • WATERS
    发现以往的 App Store 专题翻不到了
    2017年11月11日
    • 少数派编辑部
      对,好像只能看到最近 7 天的。不过当时如果保存了链接的话,以后还是打得开的。
      2017年11月11日