MATLAB爬虫程序 | 批量获取文本、图片和视频

图图今天来聊聊基于MATLAB的爬虫,互联网上真不多见。
下方是图图爬取的成果!
随时感知所有视频,点击超链接直接观看

批量获取封面图片,对不住了‘毕导’

批量下载视频,B站大学变离线

1. 爬虫是什么?
爬虫是用编程语言构造的检索引擎,它模拟人的浏览行为去各个网站溜达,到处点点按钮、查查数据,然后把看到的有用信息背回来。就像一只“蜘蛛”(爬虫)在“网上”(互联网)爬来爬去。一旦搜集到的信息足够多,就形成了巨大的价值!
每天使用的搜索引擎,其实就是利用了这种爬虫技术:每天放出无数爬虫到各个网站,把他们的信息抓回来,然后排着小队等你来检索。
抢票软件,帮助你不断刷新12306网站的火车余票。一旦发现有票,就马上拍下来,然后对你喊:快来付款。
对于个人使用者来说,爬虫的作用无非是搜集数据!图图写爬虫程序的出发点也是搜集自己在B站发布的视频与视频封面,方便自己进行统计。
网络上关于Python
的爬虫程序铺天盖地,但基于MATLAB制作的爬虫程序少之又少,今天图图来贡献自己的一份力,降低大家的学习成本。爬取的目标是B站
,仅对自己感兴趣的数据进行了爬取,包括
视频UP主
视频标题
视频封面(网址)
视频链接
形成了EXCEL表格
同时将视频的封面和视频本身下载到了一起
其它内容原理都是一样的,如果需要更多数据,只要进行简单的输出即可!
2. 爬取B站的原理
总体步骤:输入UP主的编号与视频编号,不断变换、拼接成为路径
url
,通过MATLAB去模拟浏览器访问url
。将访问得到的信息进行整理得到自己想要的关键内容,利用MATLAB输出关键内容。
因为详细的教程已经录制了视频:

所以图图此处就列出一些关键点,重点需要关注的有如下信息:
2.1 UP主的mid
mid在UP主个人空间的主页链接中

2.2 一条视频的bvid
bvid在视频播放页的地址栏中
有了
mid
和bvid
就基本确定了任意一条视频

2.3 F12
进入开发者模式查看网页代码

3. 爬取B站的MATLAB代码
须知
编写环境:MATLAB 2020a
低于MATLAB 2016a确定无法运行
因为其中调用了webread()等函数
3.1 主函数 main()
主函数主要是用于确定爬取的对象,控制爬取的过程,以及决定要保存哪些文件。
A-B-C-D-E-F-G只是为了方便阅读而拆分,实际是按顺序书写在同一个文件中的。
重点关注的输入参数就是mid
,即你要爬取哪一个UP主,其它的参数基本都可以不动。delaytime
用于设置访问的时间间隔,防止IP被封。qn
控制下载视频的清晰度。
在C部分具有 options
选项用于设置一些访问的方式,有兴趣的可以参考Python中有关的介绍——requests
。
D部分用于访问获取所需的数据data,其中就包含了封面图链接和视频链接(播放页面的链接而不是下载链接)。
data是一个结构体,其具体形式如下:


A
B
C
D
E
F
G
3.2 访问得到数据getBiliData()
用到的核心函数是webread()

详细介绍的网址;
3.3 生成文本文件
saveCon(data)
3.3 获取图片
保存图片相对简单,我们只需使用websave()将图片存到本地的指定路径即可。
3.4 获取视频文件
保存视频文件比较复杂,B站进行了层层加密,我们需要不断的改变参数进行访问,最后再使用websave()将视频存到本地的指定路径。
具体的步骤如下:
A 创建文件夹
B 与上一期相同,设置访问的UserAgent
C 获取cid
,是一个访问参数,但是不是显示的
D 获取视频的下载链接(加密的)
E 用referer
去访问加密的下载链接得到视频
关注公众号“图通道” 回复 爬虫 获取文中完整代码!
图图的MATLAB交流群 1129425848
获取图图全部干货内容?公众号“图通道”后台回复 全家桶计划