如果想开始一起操作,最好有手机APP抓取分析包裹的能力。
#水印视频下载
先说说如何抓取带水印的视频。在设定攀登目标时,我们应该知道完成任务需要哪些步骤。比如本文提到的任务:Tik Tok APP固定用户视频批量下载。
思考过程:
*如果要批量下载视频,必须先获取这些视频的链接;
*如果你想获得这些视频链接,可以通过用户主页查看。如果要进入用户的主页,我需要知道用户的主页链接;
*用户主页链接可以通过Tik Tok APP的搜索功能获取,那么如何获取搜索功能界面呢?当然,拿起包看看吧!
看,这样想了一下,问题是不是理清楚了?
搜索接口:
然后下一步是抢包分析。请自己尝试抓包过程。步骤如下:
*配置Fiddler,即确保Fiddler可以抓取手机APP
*在移动应用搜索框中输入用户信息,然后单击搜索;
*在Fiddler中找到搜索界面;
*分析该界面传递的参数规则;
*编写代码生成相应的查询界面。
通过分析,你会发现我们可以通过搜索界面返回的JSON数据找到用户主页信息,然后我们会用同样的方法抓取主页的用户信息,再进行分析。这时我们会遇到问题,你会发现用户主页链接是用as和cp参数加密的。我们做什么呢例如,链接如下:
https://aweme.snssdk.com/aweme/v1/aweme/post/?user _ id=63386731255 max _ cursor=0 count=20.as=a 18575 a 0311 BFA 0 C2 DCP=55 BBA 65311d 10 CCD E1
上面提到的链接省略号部分是一些手机信息,不是必须的参数,可以省略。User_id是可以通过最后一个搜索界面获取的用户id,count是用户视频的数量,也可以通过最后一个搜索界面获取。最终的as和cp参数呢?
我没有反转Tik Tok APP,只是做了一个小测试,看能不能绕过这个加密接口。Tik Tok有自己的视频分享功能,分享链接格式如下:
https://www.douyin.com/share/video/6511132370416962829/?区域=CN.share_iid=28037626243
中间参数不重要,这里省略。共享视频存储在www.douyin.com的域名下,那么这个用户的主页信息可以通过这个域名访问吗?一点点测试就说明完全没有问题!
https://www.douyin.com/aweme/v1/aweme/post/?user _ id=63386731255 max _ cursor=0 count=20
这是没有加密的接口。惊喜还是意外?根据这个用户主页界面,我们可以轻松获得用户主页的所有视频链接。
#没有水印视频下载
方法一:
水印视频下载很简单,有一个通用的方法,那就是使用水印平台。
我的水印平台是:http://douyin.iiilab.com/.
在输入框中输入视频链接,点击视频分析,即可获得无水印视频链接。
当我编写代码时,这个网站运行良好。刚开始用这个网站下载了一些无水印的视频,但是写这篇文章的时候发现这个水印平台不能很好的分析。请在修复后使用此功能。
这个平台不仅包括颤音视频的去水印,还支持火山、Aauto Quicker、Momo、Meipai等无水印视频。所以做这个网站的界面还是很合适的。
经过简单测试,这个网站的API需要付费分析。如果很难模拟请求,我决定去浏览器模拟器Splinter。
Splinter是个好东西,类似于Selenium,它的配置可以参考我之前的Selenium文章:http://blog.csdn.net/c406495762/article/details/72331737.
斯普林特有一份非常详细的英文文件:http://splinter.readthedocs.io/en/latest/
下面是如何使用它,但可以说的一点是,我们可以配置无头参数,将Splinter配置为无头浏览器。无头浏览器是什么?运行Splinter,在后台直接模拟各种请求,不需要调用浏览器界面,非常方便。
这部分代码非常简单,无非就是填充元素,确定解析按钮的位置,点击按钮,获取视频下载链接。让我们自己来分析一下这个小问题。
整体代码:
方法二:
这个方法是从网友的反馈中得知的,直接修改下载链接就可以获得无水印的下载链接。
方法简单粗暴,使用方便。优点是处理速度快,缺点是这种方法不通用。不同的视频发布平台可能有不同的编码方式,需要自行分析。详细代码私信可回复“您好!