分享好友 最新动态首页 最新动态分类 切换频道
B站热门榜单爬虫+可视化(详细过程和解释)
2024-12-26 23:41

①数据爬取和保存

B站热门榜单爬虫+可视化(详细过程和解释)

②数据分析和可视化

③页面展示和保存

(2)各功能模块的算法处理流程图及相关说明

①数据爬取和保存

图2.1 数据爬取和保存(流程

使用 requests 库发送 HTTP 请求,获取指定B站排行榜的数据。

对获取的 JSON 数据进行解析,并提取关键信息如视频标题、播放数、弹幕数等。

将解析后的数据存储到 Pandas 的 DataFrame 中,并保存为 CSV 文件,便于后续数据分析和处理。

②数据分析和可视化

图2.2 数据分析和可视化(流程

使用 Pyecharts 库创建柱状图、柱状图和饼状图,展示视频的播放数、弹幕数、投币数、点赞数、分享数和收藏数的分布情况。

分别创建不同类型的图表来比较不同作者的数据分布,例如播放数的分布、弹幕数的分布等。

设置图表的全局选项,如标题、轴标签的旋转角度等,以美化图表呈现效果。

③页面展示和保存

图2.3 页面展示和保存(流程)

使用 Pyecharts 的 Page 类创建页面实例,通过 add 方法将所有图表添加到同一个页面中。

最终将整个页面保存为 HTML 文件,便于在浏览器中查看和分享分析结果。

导入python相关的库和模块,用于数据处理和可视化

在cmd中输入pip install 库名来先配置相应的库到python中

若下载过慢可添加国内的镜像源来进行下载

出现如图所示页面后说明相应库已经配置完成

然后导入相应的库比如

pandas:用于数据操作和分析,特别是数据表格的创建、修改和存储,以及对数据进行统计和计算

  • requests:用于发送HTTP请求,主要用来获取网页数据
  • pyecharts;一个基于Echarts实现的python可视化库,可以生成多种图表,包括柱状图(Bar)、饼状图(Pie

其中具体模块的作用如下

  • options:提供用于配置图标选项的类和方法,例如标题设置、轴标签设置等
  • charts:提供了各种图表的类,例如Bar和Pie,用于创建不同类型的图表实例
  • Page:提供了页面管理的类,可以将多个图表组合到一个页面中,并进行统一管理和展示

借助字典dict[],创建url_dict: 包含了不同视频类别对应的API链接。每个键值对表示一个视频类别(全站、舞蹈、美食)和对应的API链接。

寻找相应APIi链接的步骤,打开相应的网页

在空白处点击鼠标右键,后选择审查元素,打开如下界面,选择其中的网络,记住要按F5进行刷新,然后筛选处对v2进行筛选

复制其中相应的请求网址即可

headers: 包含了请求的头部信息,用于模拟浏览器发起请求。其中包括了

“upgrade_insecure-requests”:”1”是一个HTTP请求头部字段,用于指示客户端希望通过安全连接(HTTPS)来获取资源,设置为1,表示客户端支持通过安全连接来升级不安全的请求

用户代理user-agent)用于描述发起HTTP请求的用户信息

预期修改时间if-modified-since)用于告诉服务器,只有在指定日期后资源被修改过的才会返回资源

“if-none-match”将之前获取资源时的 ETag 发送给服务器。如果服务器端的资源的当前 ETag 与客户端提供的 ETag 相匹配(即资源未发生变化,服务器可能会返回状态码 304 Not Modified,并且不返回实际内容,而是建议客户端使用本地缓存的副本。

请求的源信息(origin)用于指示请求的源信息

"content-length": "0"由于由对B站网页进行检索,发现为GET请求所以设置’content-length’为0

"Accept"用于指定客户端能都接受的响应内容类型

之后通过使用 Python 中的 requests 库向Bilibili的排行榜API发送 GET 请求,并传递了自定义的请求头部信息 headers,以此来获取每个类别的排名数据,并且抛出发出HTTP请求后响应的状态码来进行异常检测,使用r.json()方法来将其转换为Python对象

通过遍历循环一个包含字典中所有键值对的视图对象,来读取相应的排行榜名称和相应的API请求地址,初始化相应的空列表

title_list = []

    play_cnt_list = []  # 播放数

    danmu_cnt_list = []  # 弹幕数

    coin_cnt_list = []  # 投币数

    like_cnt_list = []  # 点赞数

    share_cnt_list = []  # 分享数

    favorite_cnt_list = []  # 收藏数

    author_list = []

video_url = []

这些列表来存储从API中返回的数据中提取出的各种信息,如视频标题,播放数,弹幕数等等

提取JSON数据中data下的list并遍历其中的每个条目,将所需的信息逐个田添加到相应的列表中,添加时应注意在B站的视频数据结构中存在相应的存放视频统计信息的字典,例如data[‘stat’]是B站中存放播放量,弹幕数,投币数,点赞数,分享数还有收藏数的结构,在B站(哔哩哔哩)的视频平台中,每个视频都有一个唯一的标识符,称为 BV号(Bilibili Video号)。BV号是B站内部用于标识视频的一种编码格式video_url.append('https://www.bilibili.com/video/' + data['bvid']) 的作用是将每个视频的完整播放页面URL添加到 video_url 列表中,以便后续使用

使用Pandas创建DataFrame,列名和数据从之前收集的列表中提取,使用 to_csv() 方法将 DataFrame 中的数据采取‘utf_8_sig’的方式解码,保存到 CSV 文件中,文件名格式为 'B站TOP100-{}.csv'.format(tab_name)。

使用pd.read_csv()方法从相应的csv文件中读取熟读到DataFrame’df’中,提取前15行数据,并将所需的列借助tolist()方法转换为列表

创建柱状图 bar

使用 pyecharts 的 Bar() 方法创建一个柱状图实例。

使用 .add_xaxis() 添加 X 轴数据(视频标题)。

使用 .add_yaxis() 添加多个 Y 轴数据(播放数、弹幕数、投币数、点赞数、分享数、收藏数)。

使用 .set_global_opts() 设置全局选项,包括标题和轴标签的旋转角度。

创建饼状图 pie_play_counts 到 pie_favorite_counts

使用 pyecharts 的 Pie() 方法分别创建多个饼状图实例。

使用 .add() 方法添加饼状图的数据,每个饼状图代表不同的数据(播放数、弹幕数、投币数、点赞数、分享数、收藏数)。

使用 .set_global_opts() 设置全局选项,包括标题、图例的位置等。

使用 .set_series_opts() 设置系列选项,包括标签格式化等。

创建页面实例 page

使用 pyecharts 的 Page() 方法创建一个页面实例。

使用 .add() 方法将各个图表(柱状图和饼状图)添加到页面中。

保存为 HTML 文件

使用 .render() 方法将页面实例 page 保存为名为 "video_stats.html" 的 HTML 文件。

这样,最终生成的 HTML 文件包含了多个图表,展示了不同作者在各项指标(播放数、弹幕数、投币数等)上的数据分布情况。

可视化效果

可通过右上的工具箱进行切换,实现柱状图和折线图的变换

这是相应的饼状图,以作者名和播放数作为相应的元素

        由图表的可视化可知,在同类型的视频创作区中,不同作者的视频之间播放数,点赞数,收藏数,投币数,分享数有着较大的差异,排名的高低并不单单取决于其中的一项要素,更多的是整体的一个体现,一些知名的作者或拥有庞大粉丝基础的作者,其视频通常会有更高的观看量和互动数。他们的粉丝可能会更积极地点赞、收藏、投币和分享他们的视频,视频的内容质量和创意度是影响观众反馈的关键因素。高质量、独特或创新的内容往往能够吸引更多的观众,导致更高的播放量和点赞数,视频的互动性和是否能够引发社区讨论也是影响数据差异的因素。有些视频可能因为能够引发更多的评论和分享而表现突出。某些视频可能会因为抓住了时事热点或者社会趋势而获得更高的关注度和互动。同时,B站的推荐算法和推广机制对视频的曝光度有重要影响。一些视频可能因为被推荐给更多用户而获得更多的点击和互动。


最新文章
SEO分析报告中,如何解释反向链接的作用和价值?提升网站权威性与排名
反向链接的定义及其在SEO中的基本作用反向链接,通常被称为“外部链接”或“入站链接”,是指从其他网站指向您网站的链接。在搜索引擎优化(SEO)中,反向链接扮演着至关重要的角色,因为它们被视为对网站内容质量和可信度的投票。换句话说
【Android -- 学习】学习资料汇总
项目名称项目简介Google I/O 2014Google I/O Android App 使用了当时最新推出的 Material Design 设计Google play music一个跨多个平台音乐播放器Google Santa Tracker for AndroidGoogle 开源的一个儿童教育和娱乐的 Appgithub客户端开源
爬虫工具之selenium(五)-建立代理IP池
IP网站为了防止被爬取,会有反爬机制,对于同一个IP地址的大量同类型的访问,会封锁IP,过一段时间后,才能继续访问,有几种简单的应对套路:1.修改请求头,模拟浏览器(而不是代码去直接访问)去访问2.采用代理IP并轮换3.设置访问时间间隔
文件转换成PDF格式的常用方法与工具介绍
文件怎么转换成PDF格式How to Convert Files to PDF Format在现代办公和学习中,PDF(便携式文档格式)已经成为一种广泛使用的文件格式。PDF文件具有良好的跨平台兼容性,能够保持文件的格式和排版,因此在分享和打印文档时非常受欢迎。本
搜索功能升级又免费!OpenAI强势出击,挑战谷歌搜索霸权
当地时间12月16日,OpenAI宣布向全球所有用户免费开放ChatGPT的实时搜索功能。这是其为期12天的“Shipmas”活动的第八场直播内容,在此前的活动中,该公司已经展示并发布了一系列全新的AI产品与功能。搜索功能全面开放OpenAI在此次“Shipma
淘宝无忧退货是什么意思?卖家能拒绝退款吗
现在许多小伙伴们都非常愿意在淘宝购物,因为在淘宝购物它的退货是非常方便的,并且不仅有七天无理由退货,还有无忧退货,这都给消费者提供了不错的服务,但是也有些朋友不理解淘宝无忧退货的意思,那么接下来就一起往下看。一、淘宝无忧退
综合能源服务的市场潜力分析
当前,我国能源消费供给、能源结构转型、能源系统形态呈现新的发展趋势。随着互联网信息技术、可再生能源技术以及电力改革进程加快,开展综合能源服务已成为提升能源效率、降低 用能成本的重要发展方向,也成为各企业新的战略竞争和合作焦
用AI画美女,让我的数字女友一键生成!这些工具你不能错过!
步骤二:注册账户这里你可以选择快速注册,使用邮箱或手机号即可创建一个新账户。步骤三:选择模板进入主界面后,你会看到多种生成模板,选择适合你的美女写真风格。步骤四:输入参数根据自己想要的效果修改画风、服饰、发型等选项,尽量做
权限列表【梦幻AI绘画-免费AI作图AI换脸】
● 访问大概位置允许应用访问大概位置● 精确位置权限允许应用访问精确位置。● 查看网络状态允许应用程序查看所有网络的状态。● 开关WLAN允许应用开启或关闭WLAN● 拍摄照片和视频允许应用拍摄照片或录制视频● 更改网络连接性允许应用程
推荐系统:ann算法之ngt
在推荐或者搜索场景中,高质量的召回都是很有必要的,有时候ann搜索算法(Approximate Nearest Neighbor)可以帮助我们实现这一个功能 ngt是yahoo日本团队基于graph和tree做的的ann搜索工具,地址:ht
相关文章
推荐文章
发表评论
0评