廉江网站开发公司望野小说

张小明 2026/1/10 18:32:18
廉江网站开发公司,望野小说,网站建设公司服务,网页设计代码水平对齐属性align文章目录 0 前言1 项目运行效果2 设计原理数据处理方案可视化呈现方案综合得分计算指标综合得分漏斗图游客画像完成度三连排行榜点赞、投币、收藏与白嫖的比例分析 3 最后 0 前言 #x1f525;这两年开始毕业设计和毕业答辩的要求和难度不断提升#xff0c;传统的毕设题目缺…文章目录0 前言1 项目运行效果2 设计原理数据处理方案可视化呈现方案综合得分计算指标综合得分漏斗图游客画像完成度三连排行榜点赞、投币、收藏与白嫖的比例分析3 最后0 前言这两年开始毕业设计和毕业答辩的要求和难度不断提升传统的毕设题目缺少创新和亮点往往达不到毕业答辩的要求这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。并且很难找到完整的毕设参考学习资料。为了大家能够顺利以及最少的精力通过毕设学长分享优质毕业设计项目提供大家参考学习今天要分享的是毕业设计 大数据B站数据分析可视化系统学长这里给一个题目综合评分(每项满分5分)难度系数3分工作量3分创新点4分 项目分享:见文末!1 项目运行效果视频效果毕业设计 大数据B站数据分析可视化系统2 设计原理以下做一个简单的demo作为讲解是非常基础的数据挖掘可视化过程demo过于基础仅作大致原理解释和介绍就不放在最后的工程里了网上很多类似的案例想学习的同学自己模仿。为了便于后续的数据的使用我们从老师规定的三种可视化方案中选择了pycharts方案因而后端也就选择了Flask一个使用Python编写的轻量级 Web应用框架。对于数据的抓取则选取了Urllib这一python内置的HTTP请求库来进行抓取。对于前端我们采用了flexible使用rem自适应布局使用jQuery Ajax对图表进行实时的更新。对于数据处理主要使用到了python的一些内置库除此之外对于综合评分分析中使用到了灰色关联度分析与主成分分析用到了sklearn库详细的内容在可视化部分进行详解。数据处理方案本次数据来源于哔哩哔哩排行榜服务器后台中每5min对排行榜数据爬取通过jQuery Ajaxflask实时更新到网页上。以下是数据爬取过程本次爬虫教程使用requests第三方库一个强大的基于urllib3的第三方库。首先分析哔哩哔哩排行榜的源码不难发现榜单都在 li 标签中所以可以先找出该全部标签然后再详细分析里面的信息。可以看出大厂的网站写的还是很棒的很有体系可以说bilibili甚至很适合新手来练手爬虫。因为比较条理且为静态网页直接使用requests遍历li并对其进行find操作找到对应标签内的内容存储即可完成热榜爬取。此时部分数据需进行一定的处理但均较为简单转换格式以及去除空格、‘\n’等。但哔哩哔哩排行榜的内容只包括排名,视频名称、播放量、弹幕数、综合得分、作者、链接并没有更加重要的投币、点赞、转发和收藏等关键信息。所以还需要对每一个页面内部进行爬取。后续代码中的info_Page(bv)对此进行了实现bv代表的是哔哩哔哩每个视频对应的唯一的bv号使用此bv添加网站后缀即可完成info页面的访问在info页面中依旧十分易于爬取。但此时爬取速度过快时会触发其反爬策略且较难处理故后续采用其提供接口获取内部详细数据。使用 bv号形式获取数据后续只需进行格式处理即可完成。最后数据保存入bilibili.txt文件中数据的运用及处理在各可视化案例中详细介绍。爬虫部分到此结束附 爬虫代码import requests from bs4 import BeautifulSoup import xlwt import time import urllib3 import requests import json # 爬取B站热榜排行 # 格式解析[0-当前排名1-视频标题2-播放数目3-弹幕数量4-综合得分5-作者6-视频地址7-时长8-评论数9-收藏数10-投币数11-分享数12-点赞数] # 格式化 def whitespace(st): st st.replace(\n, ) st st.strip() st st.replace( , ) return st # 详情页 def info_Page(bv): url http://api.bilibili.com/x/web-interface/view?bvid bv headers { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36 } # 请求头模拟浏览器的运行 urllib3.disable_warnings() # 从urllib3中消除警告 response requests.get(url, headersheaders) content json.loads(response.text) # 很迷获取到的是str字符串 需要解析成json数据 statue_code content.get(code)# print(statue_code) if statue_code 0: duration content[data][duration] # 时长 reply content[data][stat][reply] # 评论 favorite content[data][stat][favorite] # 收藏 coin content[data][stat][coin] # 投币 share content[data][stat][share] # 分享 like content[data][stat][like] # 点赞 return duration,reply,favorite,coin,share,like while(True): url https://www.bilibili.com/v/popular/rank/all headers { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36} rank requests.get(url, headersheaders) # 请求页面 soup BeautifulSoup(rank.text, lxml) all_rank soup.find_all(li, class_rank-item) num 0 lst[] for i in all_rank: record [] rank_num i.find(div, class_num).text # 获取排名 info i.find(div, class_info) # 筛选出视频详细信息的标签 href info.find(a, class_title).attrs[href] # 获取链接 title info.find(a, class_title).text # 获取标题 play_num info.find(i, class_b-icon play).parent.text # 获取播放量 view_num info.find(i, class_b-icon view).parent.text # 获取弹幕数 author info.find(i, class_b-icon author).parent.text # 获取作者名 scores info.find(div, class_pts).find(div).text # 获取综合得分 # 播放弹幕作者 play_num whitespace(play_num) view_num whitespace(view_num) author whitespace(author) bv href.split(/)[-1] duration,reply,favorite, coin,share,like info_Page(bv) record.append(rank_num) record.append(title) record.append(play_num) record.append(view_num) record.append(scores) record.append(author) record.append(href) record.append(duration) record.append(reply) record.append(favorite) record.append(coin) record.append(share) record.append(like) num 1 lst.append(record) # 爬取的数据存入文件避免多次爬取且提高响应速度 with open(./bilibili.txt, w,encodingutf-8) as f: for line in lst: for i in line: f.write(str(i),) f.write(\n) time.sleep(300) #print(lst[0])可视化呈现方案综合得分计算指标哔哩哔哩综合得分是视频是否能排上排行榜的依据若能知道其规则对于视频内容的倾向up主是否需要请求“一键三连”观众们需不需要吝啬手中的币是有很大的价值的所以在此首先进行综合得分计算指标的分析及其可视化此处采取灰色关联度分析Grey Relation AnalysisGRA来进行数据的处理GRA是一种多因素统计分析的方法。简单来讲就是在一个灰色系统中我们想要了解其中某个我们所关注的某个项目受其他的因素影响的相对强弱本项目中就是说我们假设B站综合得分可能是与播放、评论、收藏、投币、分享、点赞几个因素相关的那么我们想知道综合得分与这几个因素中的哪个相对来说更有关系而哪个因素相对关系弱一点把这些因素排个序得到一个分析结果我们就可以知道哔哩哔哩综合得分与因素中的哪些更相关因而也就可以看出观众的一键三连的作用以及up主们更应该求的是赞、币亦或是其他。首先是要确定子母序列母是结果子是影响因子那么毫无疑问综合得分就是母其他均为影响因子。将其分别存入mom_以及son_中代码如下with open(./bilibili.txt, r,encodingutf-8) as f1: lst2[] for line in f1.readlines(): lst2.append(line.split(,)) mom_ [int(i[4]) for i in lst2[0:50:]] view [] reply [] favorite [] coin [] share [] like [] for i in lst2[0:50]: view.append(float(i[2].strip(万))*10000) reply.append(int(i[8])) favorite.append(int(i[9])) coin.append(int(i[10])) share.append(int(i[11])) like.append(int(i[12])) son_ [view,reply,favorite,coin,share,like]然后要对数据进行预处理因为我们的这些要素是不同质的东西的指标因此可能会有的数字很大有的数字很小但是这并不是由于它们内禀的性质决定的而只是由于量纲不同导致的因此我们需要对它们进行无量纲化。这个操作一般在数据处理领域叫做归一化normalization也就是减少数据的绝对数值的差异将它们统一到近似的范围内然后重点关注其变化和趋势。按公式归一化即可。mom_ np.array(mom_) son_ np.array(son_) son_ son_.T / son_.mean(axis1) mom_ mom_/mom_.mean() for i in range(son_.shape[1]): son_[:,i] abs(son_[:,i]-mom_.T) Mmin son_.min() Mmax son_.max() cors (Mmin 0.5*Mmax)/(son_0.5*Mmax) Mmean cors.mean(axis 0)最终结果B站综合得分与播放、评论、收藏、投币、分享、点赞几个因素都具有很强的相关性。为了体现这一结果我们采用了关系图来进行可视化由于灰色关联度分析的权重均较为接近但哔哩哔哩综合得分的公式也并没有公布所以无从证实其真实性下图为网传数据进行的关系图可视化均仅供参考附 灰色关联度分析及可视化# 灰色关联度分析版本importnumpyasnpfrompyechartsimportoptionsasoptsfrompyecharts.chartsimportGraphwithopen(./bilibili.txt,r,encodingutf-8)asf1:lst2[]forlineinf1.readlines():lst2.append(line.split(,))mom_[int(i[4])foriinlst2[0:50:]]view[]reply[]favorite[]coin[]share[]like[]foriinlst2[0:50]:view.append(float(i[2].strip(万))*10000)reply.append(int(i[8]))favorite.append(int(i[9]))coin.append(int(i[10]))share.append(int(i[11]))like.append(int(i[12]))son_[view,reply,favorite,coin,share,like]mom_np.array(mom_)son_np.array(son_)son_son_.T/son_.mean(axis1)mom_mom_/mom_.mean()foriinrange(son_.shape[1]):son_[:,i]abs(son_[:,i]-mom_.T)Mminson_.min()Mmaxson_.max()cors(Mmin0.5*Mmax)/(son_0.5*Mmax)Mmeancors.mean(axis0)# 为便于观察 扩大40倍nodes[{name:播放,symbolSize:Mmean[0]*40},{name:评论,symbolSize:Mmean[1]*40},{name:收藏,symbolSize:Mmean[2]*40},{name:投币,symbolSize:Mmean[3]*40},{name:分享,symbolSize:Mmean[4]*40},{name:点赞,symbolSize:Mmean[5]*40},]links[]foriinnodes:forjinnodes:links.append({source:i.get(name),target:j.get(name)})c(Graph().add(,nodes,links,repulsion8000).set_global_opts(title_optsopts.TitleOpts(title综合得分计算指标)))c.render_notebook()综合得分漏斗图通过综合得分漏斗图可以看出除了前三名视频以外其他的视频差距都不是很大其它的视频的宽度差距不大4-20名的差距基本很小这也说明了其名次十分焦灼变化也比较快。推测前三名视频是由于挂在了榜上所以导致其经常被推送已经看排行榜的人观看即便此视频的标题等对其可能并没有很大的吸引力。而后续的视频可能游客就只会对其感兴趣的视频来进行浏览不同兴趣的用户分别点击不同的视频也就导致了后续视频的差距很小十分焦灼。在此部分作者的标题与粉丝基数可能会对名次产生较大的影响。在分析的过程中我发现很多的视频标题中都带有感叹号与问号等字符或许可以对一段时间内的排行榜进行数据的采集然后进行标题的分析或许也能找到一些吸引游客关注的方案一定程度内拒绝标题党。附 frompyechartsimportoptionsasoptsfrompyecharts.chartsimportFunnel data_fun[[i[5],int(i[4])]foriinlst[0:20]]# 创建 Funnel 对象funnel_demo(Funnel(init_optsopts.InitOpts(width800px,height700px,page_titlepage,)).add(,data_fun,sort_descending).set_global_opts(title_optsopts.TitleOpts(title),legend_optsopts.LegendOpts(is_showFalse)).set_series_opts(label_optsopts.LabelOpts(is_showTrue,positionright,#font_size 12,)))funnel_demo.render_notebook()游客画像哔哩哔哩游客画像分析因为课程设计的时间关系本次爬虫中主要对于排行榜视频进行爬取以及部分排行榜作者的信息所有并没有太多的游客的信息本部分可视化的信息来自于我的哔哩哔哩后台数据具有很大的个人倾向而且数据规模也比较小。我的视频以游戏视频为主受众也的确多为16-25岁之间的人群但很难以置信的是在35-40岁之间还有很多的受众这对于视频博主来说更改自己的视频策略是非常重要的。在游客的性别方面也十分的出乎意料我的游戏视频并没有明显的性别倾向但女性观众的比例竟然都大于了3/4这也是很难以置信的以后也可以根据自己的受众来合理的制作视频。对于视频观看途径毫无悬念的Andrioid占据上风紧随其后的是PC端与iPhone端而站外播放几乎没有。附from pyecharts import options as opts from pyecharts.charts import Pie c ( Pie() .add( , [list(z) for z in zip([Andrioid端, H5端, PC端, 站外端, iPhone端], [60, 0, 23, 0, 17])], center[30%, 30%], radius[15%, 30%], ) .add( , [list(z) for z in zip([16-25岁, 0-16岁,25-40岁,40岁以上,], [44, 23,21,13])], center[70%, 30%], radius[15%, 30%], ) .add( , [list(z) for z in zip([男性观众, 女性观众], [24, 76])], center[30%, 75%], radius[15%, 30%], ) .set_colors([#8be09c,#ffc573,#5ddfff,#ff9db5]) .set_global_opts( title_optsopts.TitleOpts(title游客画像), legend_optsopts.LegendOpts( is_show False ), ) ) c.render_notebook()完成度对于排行榜上的视频视频的完成度均是特别高的大多都处于很高的程度但一些多p的较长的录播类型的视频播放完成度会有些稍低如第七名。另外较短的视频的完成度均特别高如第九名。推测视频的完成度也会对视频的综合得分有部分影响因为第九名这一视频的其他数据并非是特别突出但仍在排行榜前列。后面的灰色关联度分析因为视频完成度比较难以无纲量化并没有对其进行分析是一缺憾。但哔哩哔哩对播放完成度统计并计算也正体现当前时代的趋势快餐文化的盛行。但哔哩哔哩的很多博主还是很令人高兴的并没有在快文化盛行的今天选择以快文化来吸引流量还是选择了高质量这一部分在视频时长与综合得分处进行详解。附from pyecharts import options as opts from pyecharts.charts import Bar, Grid, Line Line_Bar_Grid [] for i in lst[0:10:]: Line_Bar_Grid.append(int(i[7])) x_data [第{}名.format(i) for i in range(1, 11)] bar ( Bar() .add_xaxis(x_data) .add_yaxis( 视频时长, [i for i in Line_Bar_Grid], yaxis_index0, color#d14a61,) .set_global_opts( legend_optsopts.LegendOpts(is_show True, pos_left 30%,), yaxis_optsopts.AxisOpts( name视频时长, positionright, axisline_optsopts.AxisLineOpts( ), axislabel_optsopts.LabelOpts(formatter{value}s), ),) ) line ( Line() .add_xaxis(x_data) .add_yaxis( 播放完成度, [i for i in range percentage_num], yaxis_index2, color#675bba, label_optsopts.LabelOpts(is_showFalse), ) .set_global_opts(legend_optsopts.LegendOpts(is_show True, pos_right 30%,)) ) grid ( Grid() .add(bar, grid_optsopts.GridOpts()) .add(line, grid_optsopts.GridOpts()) ) grid.render_notebook()三连本处数据对排行榜100条数据每10条取其综合得分平均值与点赞投币收藏平均值来计算综合得分与其余三者的变化趋势可以显而易见的看出综合得分与其三者之间存在着明显的线性相关性这也对我们后续的灰色关联度分析给出了提示由于采用取平均值的形式所以基本没有出现投币大于点赞也就是“币比赞多”的情况但在点赞投币收藏比例图中对此进行了体现。可以看出整体来说点赞大于投币大于收藏并非是需要获得的投币是最少的收藏反而是最少的收藏的视频一般都是可以二次观看的为主收藏的数量较少应当就是这种原因导致的。附import pyecharts.options as opts from pyecharts.charts import Line line_Thread [] for i in lst[0:80:10]: play float(i[2].strip(万)) line_Thread.append([int(i[4]),int(play*10000),int(i[12]),int(i[8]),int(i[9]),int(i[10])]) # 综合得分播放点赞评论收藏投币 print(line_Thread) print([i[1] for i in line_Thread]) c ( Line() .add_xaxis([1,10,20,30,40,50,60,70,]) #.add_yaxis(播放, [i[1] for i in line_Thread]) # 播放数目 .add_yaxis(点赞, [i[2] for i in line_Thread]) #.add_yaxis(评论, [i[3] for i in line_Thread]) # 评论数过少 .add_yaxis(收藏, [i[4] for i in line_Thread]) .add_yaxis(投币, [i[5] for i in line_Thread]) .set_global_opts(#title_optsopts.TitleOpts(title综合得分与评论点赞投币收藏趋势), yaxis_optsopts.AxisOpts(name综合得分,name_locationcenter, name_gap70), xaxis_optsopts.AxisOpts(name排行榜名次,name_locationcenter)) ) c.render_notebook()排行榜点赞、投币、收藏与白嫖的比例分析前排行榜前20条视频的点赞、投币、收藏与白嫖的比例可以明显的看出即便是这么高质量的视频大多数的人还是选择了白嫖 具体查看每个图表的标题或内容可知投币大于点赞即“币比赞多”是很少见的情况常出现于爱心救助比如救助流浪狗流浪猫等能引起用户共鸣与感动的视频除此之外另一种“币比赞多”的情况多出现于视频质量极高制作难度极高视频质量极高让人直接把币拱手相让类型的比如本次榜单上的mad混剪e3d时间重映射发光抖动放射光线(评论区说的)工程难度极高。附frompyechartsimportoptionsasoptsfrompyecharts.chartsimportPiefrompyecharts.commons.utilsimportJsCode b_pie[]foriinlst[0:12]:playfloat(i[2].strip(万))likeint(i[12])coinint(i[10])favoriteint(i[9])b_pie.append([i[1],[(白嫖,play*10000-like-coin-favorite),(点赞,like),(投币,coin),(收藏,favorite)]])x10y25pie_demo(Pie())foriinb_pie:x_termstr(x)%y_termstr(y)%#print(x_term,y_term)pie_demo.add(i[0],i[1],center[x_term,y_term],radius16%,)x16if(x100):x10y50#pie_demo.set_global_opts(title_optsopts.TitleOpts(title白嫖数量))pie_demo.render_notebook()分析本处的视频分析逻辑并不是很严谨因为所有的数据均为排行榜视频数据视频的综合得分均比较高时长的分析应当有更加大规模的数据来进行测试与处理。但实时的对排行榜数据进行分析也能看出一些趋向。最终可以得知视频时长与视频的受欢迎程度是有关系的在8min到13min附近的视频最为受欢迎这是很令人意外的bilibili优质视频的时长都没有太短值得up主们考量。篇幅有限更多详细设计见设计论文3 最后项目包含内容 项目分享:见文末!
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

中国建设银行预约网站设计公司企业文化

IntelliJ IDEA 2025.3 最新变化:值得更新吗? 作为开发者,IntelliJ IDEA 已经成为我们日常工作的得力助手。无论是针对 Java 的深入支持,还是对现代框架的迅速适配,IntelliJ IDEA 通过不断更新和优化,让开发…

张小明 2026/1/10 14:19:23 网站建设

青海省住房和城乡建设厅网站龙华做手机网站建设

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个面向新手的MinGW安装辅助工具,要求:1. 图形化界面(Tkinter) 2. 分步骤引导安装 3. 实时检测常见错误 4. 内置修复功能 5. 生…

张小明 2025/12/31 0:18:54 网站建设

打开陕西建设厅网站安卓市场官方版app下载

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

张小明 2025/12/31 6:33:50 网站建设

制作网站专业公司哪家好网站建设费税收分类

本章带你速览Python“从源码到CPU”的全程:先编译成跨平台字节码,再由虚拟机逐条解释;通过dis探秘指令、__pycache__提速,用NumPy、Numba、Cython、多进程/异步把热点路径飙到C级速度;对比CPython、PyPy、MicroPython等实现差异,并手把手用PyInstaller、Nuitka、Briefcas…

张小明 2026/1/9 11:51:49 网站建设

怎样做企业手机网站做网站售后几年

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个详细的MinGW安装和使用指南项目,包含:1. MinGW-w64安装包下载链接 2. 系统PATH配置说明 3. VS Code的C/C扩展配置 4. tasks.json和launch.json示例 …

张小明 2025/12/31 5:35:03 网站建设

开发一个社交软件需要多少钱sem优化软件选哪家

Kinovea是一款功能强大的开源运动分析软件,专为体育教练、康复治疗师和运动爱好者设计。它能够通过视频捕捉、逐帧分析、动作对比和精确测量,帮助用户深入理解运动技术细节,为训练和评估提供数据支持。无论你是想要优化运动员的表现&#xff…

张小明 2026/1/1 5:56:24 网站建设