就这么简单!20行Python代码爬取腾讯视频

点击上方“涛哥聊Python”,选择“星标”公众号

重磅干货,第一时间送达

来源:Leo说点事

就这么简单!20行Python代码爬取腾讯视频_第1张图片

元旦放假前,老板让我下载一个视频发给同事群看一下,仔细研究后发现腾讯视频下载的都是QLV视频文件。这种文件只能用腾讯播放器打开,难道让我发视频还要附带个播放器?太麻烦了,想着最近在学习Python,就试了一下用Python下载腾讯视频,并保存为MP4格式,说干就干,代码撸起来!

1

流量分析

起初我想通过流量分析的方式反推出视频原地址,由于涉及到JavaScript相关内容,弄了好久没有结果。然后对视频进行分析,发现腾讯视频有个规律:

将大括号改成要下载视频的vids,经requests请求后得到的内容包含原视频地址所需的域名和key值,经过拼接,即视频地址=url+key+vids.mp4,用这个地址就可以下载该视频了。

下面我们以小猪佩奇的视频为例

给大家详细讲诉一下过程

就这么简单!20行Python代码爬取腾讯视频_第2张图片

2

解析流量,找到隐含的地址

1).首先我们打开腾讯的视频

比如小猪佩奇,可以看到它的vid是"b0020buglwx" ,既然找到了对应的下载的链接,我们就可以用request来模拟请求,然后构造对应的url,别忘记了替换vids。

2).深入分析json文件

然后我们打印出json文件,从里面分析内容,找出隐含的key和url链接:

就这么简单!20行Python代码爬取腾讯视频_第3张图片

既然能找了这些真正有用的信息,如果提取的。不要忘记了,我们有万能的正则表达式,轻松就可以搞定!

3).我们打印一下这个item看一下内容

就这么简单!20行Python代码爬取腾讯视频_第4张图片

正则表达式提取下载视频url所需的内容以及视频标题,并构造视频下载地址video_url:

3

下载视频

有了上面的视频的真正的url之后,就可以非常轻松的下载下来。

就这么简单!20行Python代码爬取腾讯视频_第5张图片

用request库按照stream模式下载,记得写入文件时候用'ab'二进制追加模式进行写入,最后完成之后记得用flush()函数清空缓冲区即可。

然后看一些我们的硬盘目录,就会发现对应的视频已经轻松下载完成了!是不是很简单啊!其实整个代码只有20行,大家可以动手练习一下!

就这么简单!20行Python代码爬取腾讯视频_第6张图片

最后一起看一些这个小猪佩奇的视频吧


记住:永远不要在MySQL中使用UTF-8

用Python扒出B站那些“惊为天人”的阿婆主!

清华姚班毕业生开发新特效编程语言,99行代码实现《冰雪奇缘》,网友:大神碉堡!创世的快乐



你可能感兴趣的:(就这么简单!20行Python代码爬取腾讯视频)