最新版本:chrome浏览器5.0_七
优采云 发布时间: 2022-09-22 02:20最新版本:chrome浏览器5.0_七
一.凯首视频网站分析
虽然作者不玩快手和抖音,但作为网络安全方向的新人,我一直想把这些视频下载到本地。本文文章主要使用Chrome浏览器和Python来简单分析一下快手视频是如何下载到本地的。
第一步:将要下载的视频分享到QQ,会得到如下链接,如下图所示通过浏览器打开。
第二步:会重定向到一个新的URL,也就是我们需要分析的目标页面,比如下面的三个视频链接。
我们可以推测出URL的基本结构是:
+ 用户 ID + 视频 ID + ?did= + 一串键
第三步:下面是视频热页,通过Chrome浏览器打开,按F12(或右键“勾选”)查看源码。在Network页面下,点击XHR,再次刷新页面,点击“graphql”可以看到Json数据,这次终于印证了我们之前的猜测,链接由“host ID”(id)和“video ID”(photoId)组成.
其中一个视频信息如下:
第四步:我们尝试拼接链接,可以正确访问,如下图所示。然后我们将简要分析如何将视频下载到本地。
id:3xwuykzsrqyynv6
照片 ID:3x69gvye5gjh7se
二.Chrome 浏览器网络分析
第一步:以这个视频为例,我们按F12键(或右键“勾选”),刷新页面,点击网络。
第二步:在“ALL”中找到一个以“mp4”结尾的文件,也就是要下载的视频文件,点击“Headers”查看对应的视频地址。注意在视频执行过程中,尽量点击暂停,否则会跳转到下一个视频。
请求网址:
请求方法:GET
状态码:206 部分内容
远程地址:61.240.28.1:443
推荐人政策:unsafe-url
第三步:打开迅雷,将复制的视频地址添加到“新建下载任务”中,下载视频。
第四步:视频成功下载到本地后,即可打开。
你可能在想:
能否直接分析HTML源代码来定位视频的链接。不,视频是动态加载的。我能想到的办法是通过Python获取Network中的所有资源,然后定位到“mp4”对应的超链接,但是最后还是没有解决,后续部分再讨论详细。
三.Python下载视频
Tqdm是一个Python进度条库,可以在Python长循环中添加进度提示信息用法:tqdm(iterator)。
示例代码:
# -*- coding: utf-8 -*-import timefrom tqdm import tqdm for i in tqdm(range(100)): time.sleep(0.01)#设置描述pbar = tqdm(["a", "b", "c", "d"]) for char in pbar: # 设置描述 pbar.set_description("Processing %s" % char) time.sleep(1)
输出如下图:
<p>0%| | 0/4 [00:00, ?it/s]Processing a: 25%|██▌ | 1/4 [00:01