分享好友 最新动态首页 最新动态分类 切换频道
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站的推荐算法和推广机制对视频的曝光度有重要影响。一些视频可能因为被推荐给更多用户而获得更多的点击和互动。


最新文章
百度快速收录3元一条:提升网站排名的秘诀
为什么选择百度快速收录服务?选择百度快速服务的原因有很多,它能够显著提高网站的可见度。当网站内容被百度快速收录后,用户在搜索相关关键词时,能够更快地找到你的网站,从而增加网站的流量和潜在客户。快速收录有助于提升网站的权威性
探索冒险类手机游戏前十名2022 十大探索冒险类手机游戏排行榜
发现游戏内的秘密是探险游戏的核心主题。如果你想要见识本年度最佳的探索冒险游戏,不妨来看看这篇有关探索冒险类手机游戏前十名2022的排行榜。这些游戏都是根据其评分,热度有序排名的,以下这十款游戏都有其独特的亮点。1、《冒险王2》这
苹果手机屏幕滑动不灵敏,该如何解决?
苹果手机滑不动时,可以尝试以下方法:重启手机、检查触摸屏是否被覆盖或脏污并清洁、调整滑动速度或恢复出厂设置。若无效,可能是硬件问题,建议咨询苹果客服或前往官方维修点检查。苹果手机滑不动是一个常见的问题,可能由多种原因引起,
汉语盘点 | 2024年度十大网络用语发布
本文来源:“语言监测与智能学习”、“商务印书馆”公众号2024年12月12日,国家语言资源监测与研究中心发布“2024年度⼗⼤⽹络⽤语”,这是年度“汉语盘点”活动中最具网络特色的组成部分。本次发布的⼗⼤⽹络⽤语依次为:新质生产力、《黑
显示基础知识 | 触摸屏有什么基本特征?
·END·—如果喜欢,快分享给你的朋友们吧—点击右下角的“在看”,让更多的人看到!免责声明:编写或转载此文是为了传递更多的信息,为光电行业尽一些绵薄之力。若文章中的文字或图片无意侵犯了您的合法权益或有其他不当之处,请作者在20
越秀360SEO,企业互联网营销的得力助手
越秀360SEO公司,力企业实现互联网营销目标,提供全方位SEO优化服务,成为企业强大的互联网营销合作伙伴。随着互联网的快速发展,越来越多的企业开始重视网络营销,希望通过网络渠道拓展市场、提升品牌知名度,在这个背景下,专业的SEO优化
短信短链接生成平台,永久免费带绿标
在线短信短链接生成:https://www.aifabu.com(稳定 快速 安全带绿标)短网址生成短链接跳转源码+网址域名还原防封杀+api接口域名管理+搭建教程(文字+视频)这个源码要在Apache环境下搭建,其他环境会报错本源代码也是一个短网址缩减程序,
龙头人脸识别上市公司有哪些?(2024/12/13)
人脸识别上市公司龙头有哪些?据南方财富网概念查询工具数据显示,人脸识别上市公司龙头有:大华股份:人脸识别龙头。从大华股份近三年净利润复合增长来看,近三年净利润复合增长为47.62%,最高为2023年的73.62亿元。公司通过多年的潜心研
闪回收APP小程序开发
什么叫闪回收系统软件?闪回收app开发简易来描述就是采用网上微信/APP提交订单与线下体验结合的管理机制,运用定位服务配对离客户z近一些收货员上门收购。用户使用闪回收的微信公众平台,提交订单预定回收员上门服务的时间也,可以在网上里
盘点一款“阳光出行抢单神器软件下载”详细开挂玩法
阳光出行抢单神器软件下载是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我微下载使用。抢单可以一键让你轻松成为“必赢”。其操作方式十分简单,打开这个应用便可以自定义抢单系统规律,只需要输入自己
相关文章
推荐文章
发表评论
0评