千机游戏提供最新游戏下载和手游攻略!

chrome浏览器网络安全快速视频下载分析与爬虫研究

发布时间:2024-08-28浏览:31

一.快手视频网站解析

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

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

https://live.kuaishou.com/u + 用户ID + 视频ID + ?did= + 一串密钥

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

其中某个视频信息如下:

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

二.Chrome浏览器Network分析

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

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

Request URL: https://jsmov2.a.yximgs.com/bs2/newWatermark/NjUzODIwODM5OA_zh_4.mp4

Request Method: GET

Status Code: 206 Partial Content

Remote Address: 61.240.28.1:443

Referrer Policy: 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)

输出结果如下图所示:

0%| | 0/4 [00:00<?, ?it/s]Processing a: 25%|██▌ | 1/4 [00:01<00:03, 1.00it/s]Processing b: 50%|█████ | 2/4 [00:02<00:02, 1.00it/s]Processing c: 75%|███████▌ | 3/4 [00:03<00:01, 1.00it/s]Processing d: 100%|██████████| 4/4 [00:04<00:00, 1.00it/s]

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

# coding=utf-8import jsonimport requestsimport tqdm#定义函数下载视频def saveMp4(url, filename): res = requests.get(url, stream=True) file_size = int(res.headers['Content-Length']) num = 1 num_size = 1024 num_bars = int(file_size / num_size) with open(filename, 'wb') as fp: for num in tqdm.tqdm( res.iter_content(chunk_size = num_size), total = num_bars, unit = 'KB', desc = filename, leave = True ): fp.write(num)#调用函数url = "https://jsmov2.a.yximgs.com/bs2/newWatermark/MTQ5Mzk2MzMwMDg_zh_4.mp4"filename = "test.mp4"saveMp4(url, filename)

如下图所示:

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

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

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

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

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

Request URL: https://txmov2.a.yximgs.com/bs2/newWatermark/NjUzODIwODM5OA_zh_4.mp4Request Method: GETStatus Code: 206 Partial ContentRemote Address: 116.207.112.100:443Referrer Policy: unsafe-url

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

# -*- coding: utf-8 -*-import jsondata = { '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'])

输出结果如下图所示:

下面开始简单的尝试:

第一步:调用requests获取数据

# coding=utf-8import jsonimport requestsfrom pyquery import PyQuery as pq#设置请求ID = "3xrptqgjk98rism"photoID = "3xw28sc864d8p2e"URL = 'https://live.kuaishou.com/u/'+ID+'/'+photoIDprint URLheaders = { 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}#获取某个ID用户的作品photoIDres = requests.get(URL, headers=headers)print len(res.text)#PyQuery解析html = pq(res.text)print html

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

这里包含了视频URL代码。

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

key = '$ROOT_QUERY.publicFeeds({"count":24,"pcursor":"","principalId":"%s"})' % IDprint keydata = json.loads(html)print data#获取连接及命名play = data['data'][key]url = play['playUrl']vedio = play['caption']+'.mp4'

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

五.总结

珞珞如石,温而若珈;潇洒坦荡,一生澄澈。新学期,新生活,新里程。

一个多月的闭关,深深体会到数学和英语的重要性,短板抓紧补起来,长板却没有。开学八门课,《信息论》《现代密码学》《网络安全协议》《信息安全前沿》《信息安全与可信计算》《自然语言处理》等,就NLP熟悉点,得加油了,更要静下心来去“做”、“学”、“问”。Stay hungry,Stay foolish~希望与您一起进步

用户评论

墨染天下

这听着很有趣!我想看看这个Chrome浏览器怎么样可以用来分析网络安全视频

    有14位网友表示赞同!

毒舌妖后

我特别对快手视频下载方面感兴趣,希望能看到一些实用的技巧和工具!

    有17位网友表示赞同!

一笑抵千言

网络安全和爬虫技术都非常热门,能结合起来探索这方面的知识真是太棒了!

    有16位网友表示赞同!

迷路的男人

玩游戏的时候网络安全很重要,这个研究项目或许可以帮我更好地保护数据

    有13位网友表示赞同!

你tm的滚

希望这篇文章可以解释下如何使用Chrome浏览器进行网络分析,我感觉很新奇

    有5位网友表示赞同!

北朽暖栀

学习爬虫技术一直是我的心愿,希望能从这篇讨论中获得一些启发

    有12位网友表示赞同!

秒淘你心窝

这个标题听着很有挑战性,期待看到这个项目的成果!

    有11位网友表示赞同!

在哪跌倒こ就在哪躺下

网络安全和视频下载都离不开技术的支持,这篇文章应该能分享很多新知识

    有5位网友表示赞同!

把孤独喂饱

我想了解快手视频下载的最新技术手段,这篇探讨肯定能给我解答

    有19位网友表示赞同!

雨后彩虹

Chrome浏览器在网络安全领域的应用听起来很有意思,希望能了解更多细枝末节

    有19位网友表示赞同!

素婉纤尘

爬虫技术的学习一直是我的目标之一,希望能从这个项目中找到一些实战经验

    有11位网友表示赞同!

敬情

这个主题非常实用,对了解网络安全和视频下载有着重要的意义

    有8位网友表示赞同!

有恃无恐

期待看到这个项目的研究成果,希望能为人们提供更有效的解决方案

    有7位网友表示赞同!

今非昔比'

视频下载技术的发展越来越快,这篇文章应该能介绍最新的动态

    有12位网友表示赞同!

执拗旧人

学习Chrome浏览器在网络安全方面的应用,可以帮助我更好地利用它!

    有10位网友表示赞同!

不离我

网络安全是每个人都应该重视的问题,这篇探讨一定会给我一些启发!

    有13位网友表示赞同!

莫失莫忘

爬虫技术在网络分析中发挥着重要作用,希望能从中获得更深入的了解!

    有20位网友表示赞同!

热点资讯