欢迎光临散文网 会员登陆 & 注册

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

2021-02-27 21:23 作者:图通道  | 我要投稿

图图今天来聊聊基于MATLAB的爬虫,互联网上真不多见。

下方是图图爬取的成果!

随时感知所有视频,点击超链接直接观看

爬取文本信息

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

爬取图片信息

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

批量下载视频

1. 爬虫是什么?

    爬虫是用编程语言构造的检索引擎,它模拟人的浏览行为去各个网站溜达,到处点点按钮、查查数据,然后把看到的有用信息背回来。就像一只“蜘蛛”(爬虫)在“网上”(互联网)爬来爬去。一旦搜集到的信息足够多,就形成了巨大的价值!

  • 每天使用的搜索引擎,其实就是利用了这种爬虫技术:每天放出无数爬虫到各个网站,把他们的信息抓回来,然后排着小队等你来检索。

  • 抢票软件,帮助你不断刷新12306网站的火车余票。一旦发现有票,就马上拍下来,然后对你喊:快来付款。

    对于个人使用者来说,爬虫的作用无非是搜集数据!图图写爬虫程序的出发点也是搜集自己在B站发布的视频与视频封面,方便自己进行统计。

    网络上关于Python的爬虫程序铺天盖地,但基于MATLAB制作的爬虫程序少之又少,今天图图来贡献自己的一份力,降低大家的学习成本。爬取的目标是B站,仅对自己感兴趣的数据进行了爬取,包括

  1. 视频UP主

  2. 视频标题

  3. 视频封面(网址)

  4. 视频链接

形成了EXCEL表格

同时将视频的封面和视频本身下载到了一起

其它内容原理都是一样的,如果需要更多数据,只要进行简单的输出即可!

2. 爬取B站的原理

总体步骤:输入UP主的编号与视频编号,不断变换、拼接成为路径url,通过MATLAB去模拟浏览器访问url。将访问得到的信息进行整理得到自己想要的关键内容,利用MATLAB输出关键内容。

因为详细的教程已经录制了视频:

所以图图此处就列出一些关键点,重点需要关注的有如下信息:

2.1 UP主的mid

mid在UP主个人空间的主页链接中

mid

2.2 一条视频的bvid

bvid在视频播放页的地址栏中

有了midbvid就基本确定了任意一条视频

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

  • 获取图图全部干货内容?公众号“图通道”后台回复 全家桶计划


MATLAB爬虫程序 | 批量获取文本、图片和视频的评论 (共 条)

分享到微博请遵守国家法律