惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
Recent Announcements
Recent Announcements
L
LangChain Blog
B
Blog
阮一峰的网络日志
阮一峰的网络日志
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
M
MIT News - Artificial intelligence
D
Docker
WordPress大学
WordPress大学
J
Java Code Geeks
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
有赞技术团队
有赞技术团队
MyScale Blog
MyScale Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MongoDB | Blog
MongoDB | Blog
博客园 - Franky

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
翻越正则表达式这座大山(上)利用Workflow扒微博\秒拍视频 -...
2017-02-20 · via 少数派

未标题-1.png

几乎一年没有写东西了,这也是我在少数派的第一篇文章,就拿之前的扒视频的action练一下手。

写在前面


Image

事情的起因是想要把微博的中毒视频分享给女朋友(怒撒一把狗粮)。

在Gallery查找相关下载的action确实不尽人意,凭借之前爱好各种应用和电子产品也能摸索Workflow的玩法。

[下载该动作]

工作原理

1、通过抓包分析视频地址;

2、利用workflow提取地址与其他信息,并下载。

制作流程

一、数据分析

1、利用Replica抓取视频地址(这个怎么用我就不写了,和利用小火箭的方法一致,只不过自己控制开关)。

Replica抓包L 界面

2、可以很清楚的看出视频地址的特征:

http://us.sinaimg.cn/一串特征码.mp4?label=mp4_hd&Expires=一串十位的数字码&ssig=又是一串特征码&KID=unistore,video

3、利用Workflow查看网页源代码后可看到这么一段:

<embed type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" quality="high" pluginspage="http://get.adobe.com/cn/flashplayer/" height="480" width="480" src="http://js.t.sinajs.cn/t5/album/static/swf/video/player.swf?_vc355fdbdefd7aa3c" flashvars="list=http%3A%2F%2Fus.sinaimg.cn%2F001BOCWFjx078QSUf8HB01040100GCni0k01.mp4%3Flabel%3Dmp4_hd%26Expires%3D1487597949%26ssig%3D7kPw43YhZ9%26KID%3Dunistore%2Cvideo&fid=1034:7e1e600f40cfd318739454633c7ddc1c&ztshow=&logo=2&uid=&vf=vshow" />

虽然很乱,但是仔细分析可以不难提取出关键的部分:

list=http%3A%2F%2Fus.sinaimg.cn%2F001BOCWFjx078QSUf8HB01040100GCni0k01.mp4%3Flabel%3Dmp4_hd%26Expires%3D1487597949%26ssig%3D7kPw43YhZ9%26KID%3Dunistore%2Cvideo

正好可以对应2中的地址特征。

因此利用Workflow 中的正则表达式可以轻松提取从cn%2F至.mp4之间的特征码(其实是文件名)、Expires%3D和%26之间的十位数字码(其实是个时间戳)、ssig%3D和%26之间的10位特征码(其实我也不知道是什么)。

二、Workflow流程

2.jpg先提取【一、(2)】中的list的字符串。

3.jpg再相对应提取各个特征码。【正则表达式参考:正则表达式30分钟入门

需要解释的是

(?<=匹配前缀)(需要匹配字符串)(?=匹配后缀)

是一个固定的格式,前缀后缀为非必须。

文中(?<=ssig%3D)(\w{10})意思是从ssig%3D往后查找\w{10}(长度为10的字母或数字或下划线或汉字)。Expire同理获取。

4.jpg

最终整合到Text文件中再利用Get Contents of URL进行下载。

三、加入秒拍视频下载

通过使用发现微博视频主要分为us.sinaimg.cn和miaopai.com两大类,其他虽然有但是很少,因此加入秒拍视频抓取进行完善。

同样进行数据抓取播放网址。

379358018914571390.png可以看到反复出现“4wDUIJZWpCOLilw~~nqP8g__”字符串。

741297411300380156.png

查看网页源代码后可以发现出现过8次,但是最容易进行正则表达式抓取的是最后一处。

"scid":"4wDUIJZWpCOLilw~~nqP8g__"

5.jpg利用前述的正则表达式获取该字符串。

6.jpg同理整合到Text文件中再利用Get Contents of URL进行下载。

再优化与完善

1、因为这个动作可以下载两个不同域名的视频,所以可以添加if条件进行分离。

2、考虑到视频文件比较大,存在误触的可能,所以添加了蜂窝/WIFI的判断,利用Get Network Details获取WIFI的名字,无法获取自然是没有WIFI。

需要注意的是,因为是在微博客户端中长按呼出这个动作,所以需要在开始获取该URL以便后面使用,不然先判断是否链接WIFI之后会显示没有URL。

  200226855001323088.jpg

后记

Workflow的确可以称得上AppStore中里程碑式的App,接触它之前和之后使用手机的效率差别巨大,而且定价18元不得不谓之良心。虽然有很多人认为学习成本太高,但是沉浸于研究与探索的乐趣中也许也是一种使用iPhone乐趣。

在下一篇文章中,将分析之前因LeGou的FlashCards而启发背日语单词的重置版本,但是不知道他为什么将该文章删掉。先放个截图。

680359291491676401.jpg