40行代码教你利用Python网络爬虫批量抓取小视频

/1 前言/

还在为在线看小视频缓存慢发愁吗?还在为想重新回味优秀作品但找不到资源而忧虑吗?莫要慌,让python来帮你解决,40行代码教你爬遍小视频网站,先批量下载后仔细观看,岂不美哉!

/2 整理思路/

这类网站一般大同小异,本文就以凤凰网新闻视频网站为例,采用倒推的方式,给大家介绍如何通过流量分析获得视频下载的url,进而批量下载。

/3 操作步骤/

/3.1 分析网站,找出网页变化规律/

1、首先找到网页,网页详情如下图所示。

2、该视频网站分为人物、娱乐、艺术等不同类型,本文以体育版块为例,下拉到底端,如下图所示。

3、根据上图的结果,我们可以发现该网站是动态网页,打开浏览器自带流量分析器,点击加载更多,找出网页变化规律,第一个就是,请求网址和返回结果如下图。标记处为页码,此时是第3页。

4、返回结果包含视频的title、网页url、guid(相当于每个视频的标志,后续有用)等信息,如下图所示。

5、每个网页里边包含24个视频,打印出来是这样的,如下图所示。

/3.2 寻找视频网页地址规律/

1、先打开流量分析器,播放视频进行抓包,找到几个mp2t文件,如下图所示。

2、它们的网址我依次找了出来,放到文本文件中存放起来,以发现它们之间的规律,如下图所示。

3、大家发现规律了吗?网址中的p26275262-102-9987636-172625参数就是视频的guid(上述已经得到),只有range_bytes参数是变化的,而且是从0到6767623,很显然这是视频的大小,而且视频是分段合成的。找到这些规律之后,接下来我们需要继续进行细挖视频地址的出处。

/3.3 寻找视频的下载原始地址/

1、先考虑一个问题,视频的地址是从哪来的呢?一般情况下,先在视频网页里看看有没有,如果没有,我们就在流量分析器里,沿着第一个分段视频往上找,肯定是有某个网址返回了这些信息,很快,我在1个vdn.apple.mpegurl文件里发现了下图这个。

2、太惊喜了,这不就是我们要找的信息么,再看看它的url参数,如下图所示。

3、上图参数看起来很多的样子,不过不用怕。还是利用老办法,先在网页里看看有没有,没有的话还在流量分析器里往上找,功夫不负有心人,我找到了下图这个。

4、它的url如下图所示。

5、仔细找找规律,我们发现唯一需要变化的就是每个视频的guid了,这个第一步已经得到了。另外,返回结果包含了上述除了vkey的所有参数,而且这个参数最长,那该怎么办呢?

6、不要慌,万一这个参数没有用呢,先把vkey去掉试一试。果不其然,果然没有什么用,现在整个过程已经捋顺了,现在可以撸代码了。

/3.4 代码实现/

1、在代码里边,设置多线程下载,如下图所示,其中页码可以自己进行修改哈。

2、解析返回参数,json格式的,使用json库进行处理,如下图所示。通过解析,我们可以得到每个视频的title、网页url、和guid。

3、模拟请求,获得除Vkey外的参数,如下图所示。

4、利用上一步中的参数,进行模拟请求,获得包含分段视频的信息,如下图所示。

5、将分段视频合并,保存在1个视频文件,并以title命名,如下图所示。

/3.5 效果呈现/

1、当程序运行之后,我们便可以看到网页中的视频哗啦哗啦的在本地文件夹中进行呈现,如下图所示。接下来,妈妈再也不用担心我喜欢的视频找不着了,真香!

当然了,如果想更加直观的话,可以在代码中加入维测信息,这个大家可以自己手动设置一下。

/4 总结/

本文主要基于Python网络爬虫,利用40行代码,针对小视频网页,进行批量获取网页视频到本地。方法简单易行,而且行之有效,欢迎大家踊跃尝试。如果想获取本文代码,请zhi姐访问https://github.com/cassieeric/python_crawler/tree/master/little_video_crawler,即可获取代码链接,如果觉得不差,记得给个star噢。

那些下载不了的视频,Python只用1行代码就能直接下载

现在有很多网站都并不支持直接下载的,例如我们常去的B站里面的视频,在页面是没有下载按钮的,还有的视频需要我们下载客户端才能下载…虽然这并不能拦住多少人,有些聪明的小伙伴就会去下载一些第三方软件去下载,比如说硕鼠等等,但有的软件总是会弹出很多广告就很烦,毕竟它们是要吃饭的。

「对于跟计算机打交道的程序员来说,软件我都懒得下。」

应该有很多人用过「you-get」这招功夫,今天就来教教一些还不会的小伙伴,这招要是用在一些不懂编程的外行人面前,他们会对你竖起大拇指直呼:“牛逼!”。

啥也不说了,我们先来看看效果,我随便拿了一台电脑,下载B站视频给大家演示一下:

程序员下载视频,是不需要下软件的,you-get演示

you-get 是一款非常优秀的基于Python3的视频解析下载工具,用于从浏览器下载资源,包括视频、音频、图片和小说,它支持近70多个主流视频网站,到目前为止,我很少遇到过you-get下载不了视频的网站。

除了国内的网站,对于国外的网站也没有问题, YouTube的视频我也经常去下。这么好使的功夫,「操作起来也不复杂,前面视频你们大概也看到了,就是一行代码+一个网址。」

我补充一下,这款工具是基于Python的,所以大家需要装一下Python,大部分学Python的人都已经装好了吧,装好之后要进行一下环境变量的配置,这个我就不在这里给大家细说了,不懂的可以去百度,也可以去看一下这篇文章:

Python的安装及环境变量的配置

这里的安装不需要去什么网站下载软件,只需要用win+R键打开运行输入cmd进入命令行,输入代码:

写完这一行代码敲一下回车,系统就会开始安装you-get了,安装完成之后你的电脑就可以进行神操作了。

这个时候你去找一个网站上的视频,复制一下它的网址,我这边还是以我视频中的B站视频来举例,小姐姐长得挺好看的,就下它吧。

然后我们还是用win+R键打开命令黑窗口,然后输入指令you-get 网站,例如这样的:

you-get https://www.bilibili.com/video/BV1uz4y127JM?spm_id_from=333.851.b_62696c695f7265706f72745f64616e6365.12 1

然后敲一下回车,就开始下载了,有的时候电脑会楞个几秒才反应过来,稍等片刻就开始下载了,等它下载成功就可以了。

4.找存放位置

下载好了之后,我们去找到视频的下载路径就可以了,因为我们没有设置存储路径就直接下载了,所以视频默认下载到cmd命令当前所在的目录,存储在C盘的用户/EDZ文件夹中,我们去打开就是了。

「最后我说一下,我只在这里运送代码,只是给大家省一些精力去下载资源,如何使用它是由你自己决定了,技术是无罪的,但行为是可以判罪的,注意分寸,遵纪守法。」

「感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:」

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。