网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

admin 2021年12月27日02:01:29评论274 views字数 3307阅读11分1秒阅读模式



免责声明:本公众号发布的文章均转载自互联网或经作者投稿授权的原创,文末已注明出处,其内容和图片版权归原网站或作者本人所有,并不代表安全+的观点,若有无意侵权或转载不当之处请联系我们处理,谢谢合作! 

欢迎各位添加微信号:qinchang_198231  

 加入安全+ 交流群 和大佬们一起交流安全技术





作者介绍:杨秀璋


自幼受贵州大山的熏陶,养成了诚实质朴的性格。经过寒窗苦读,考入BIT,为完成自己的教师梦,放弃IT、航天等工作,成为贵财一名大学教师,并想把自己所学所感真心传授给自己的学生,帮助更多陌生人。


一.快手视频网站解析


虽然作者不玩快手和抖音,但作为网安方向的新人,总想把这些视频下载到本地。本篇文章主要利用Chrome浏览器和Python简单分析快手视频如何下载到本地。


第一步: 将需要下载的视频分享到QQ,将得到如下链接,通过浏览器打开如下图所示。首页推荐的某主播视频:http://zhaotong.m.chenzhongtech.com/s/yQ0cCf77

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

第二步: 它会重定向跳转到一个新的网址,该网址才是我们需要分析的目标页面,比如下面的三个视频链接。

我们可以猜测出网址基本的构成为:

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

https://live.kuaishou.com/u/3xhese5im6yksx6/3xa7v5aze84kirg?did=web_3e7228e2fb25419eae1bc7a0eb29bbde

https://live.kuaishou.com/u/3xhese5im6yksx6/3xg6v9usfdnkuf9?did=web_3e7228e2fb25419eae1bc7a0eb29bbde

https://live.kuaishou.com/u/3xhese5im6yksx6/3xvgazhxasseuye?did=web_3e7228e2fb25419eae1bc7a0eb29bbde


注意,如果我们省略后面的did值,它会自动补充该值并正确访问的,如:

https://live.kuaishou.com/u/3xhese5im6yksx6/3xa7v5aze84kirg


第三步: 下面是视频hot页面,通过Chrome浏览器打开,并按下F12(或右键“检查”)可以查看源代码。在Network页面下,点击XHR,再刷新一次页面,点击“graphql”可以看到Json数据,这次终于确定我们之前的猜想,链接有“主播ID”(id)和“视频ID”(photoId)组成。

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

其中某个视频信息如下:

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

第四步: 我们尝试拼接下链接,确实能够正确访问,如下图所示。接着我们将简单分析如何下载视频至本地。

id: 3xwuykzsrqyynv6

photoId: 3x69gvye5gjh7se

https://live.kuaishou.com/u/3xwuykzsrqyynv6/3x69gvye5gjh7se

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨
网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

二.Chrome浏览器Network分析


第一步: 还是以这个视频为例,我们按下F12键(或右键“检查”),刷新页面,点击Network。

首页推荐的某主播视频:https://live.kuaishou.com/u/3xhese5im6yksx6/3xa7v5aze84kirg

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

第二步: 在“ALL”中找到有一个“mp4”结尾的文件,即为要下载的视频文件,点击“Headers”查看对应视频地址。注意,视频执行过程中,尽量点击下暂停,否则会跳转到下一个视频。


Request URL:

Request Method: GET

Status Code: 206 Partial Content

Remote Address: 61.240.28.1:443

Referrer Policy: unsafe-url

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

第三步: 打开迅雷,将复制的视频网址添加到“新建下载任务”中,下载该视频。

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

第四步: 视频成功下载至本地,打开即可。

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

你可能会想:
能不能直接分析HTML源代码,从中定位视频的链接。不行了,视频是动态加载的,我能想到的方法是通过Python获取Network中的所有资源,再定位“mp4”对应的超链接,但最终还是没解决,后续部分将详细探讨。

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨
网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

三.Python下载视频


Tqdm是Python进度条库,可以在Python长循环中添加一个进度提示信息用法:tqdm(iterator)。

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

示例代码:

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

输出结果如下图所示:

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

下面讲述一段代码,将视频下载至本地。

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

如下图所示:

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

如果读者想下载快手某位主播的所有视频,则可以点击它的个人主页,如下图所示。

主播的主页:https://live.kuaishou.com/profile/Flulu727

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

写到这里,你可能会想能不能写个爬虫将所有网页链接中“mp4”对应的地址抓取下来,再进行统一爬取。下面我们来简单进行分析,但最终结果失败了!

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

四.Python自动化抓取视频讨论


网络查找很多获取Network中所有网络请求URL、获取XHR的response结果,均没有一个有效的答案,包括github的代码。比如:

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

下面进行一些探讨,我首先想到的方法包括两个基本操作,即:
1.设置消息头headers和请求的参数data,调用requests()函数请求连接,注意该视频是GET方法。

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

2.返回的数据调用json.load()函数进行解析,并且获取指定的字段。

# -*- coding: utf-8 -*- import json
data = { 'id' : 1, 'name' : 'test1',     'age' : '1' data2 = [{         'id' : 1,         'name' : 'test1',         'age' : '1' },{      'id' : 2,         'name' : 'test2',         'age' : '2' }]  #python字典类型转换为json对象 json_str = json.dumps(data) print(u"python原始数据:"print(repr(data)) print (u"json对象:"print(json_str) print("")   
json_str2 = json.dumps(data2) print (u"python原始数据:"print(repr(data2)) print (u"json对象:"print(json_str2) print("")      

# 将json对象转换为python字典 data3 = json.loads(json_str) print(data3) print("data3['name']: ", data3['name']) print("data3['age']: ", data3['age'])

输出结果如下图所示:

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

下面开始简单的尝试:

第一步:调用requests获取数据

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

输出结果中最重要的是最后一个script代码。

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

这里包含了视频URL代码。

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨
网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

第二步:尝试用下面的代码解析Json数据并定位链接。

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

但最重要的一步是如何定位Json位置并解析。

网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

五.总结


后续将学习Fiddler进行手机抓包以及代理设置。

Github:

https://github.com/binglansky/spider/blob/master/kuaishou.py

https://github.com/muyangren907/Kwai_download_script

https://github.com/d1y/lovepack/blob/master/kuaishou.py


原文链接:

https://blog.csdn.net/Eastmount/article/details/100544347



本文始发于微信公众号(渗透云笔记):网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月27日02:01:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   网络安全自学篇(七)| 快手视频下载之Chrome浏览器Network分析及Python爬虫探讨http://cn-sec.com/archives/492652.html

发表评论

匿名网友 填写信息