数字资源管理期末报告

  • 一、业务需求分析
    • (一)网易云需求分析
    • (二)豆瓣需求分析
  • 二、系统功能需求分析
    • (一)分析预测功能
    • (二)系统可视化功能
  • 三、系统功能设计
    • (一)、系统设计展示分析
    • (二)、网易云音乐用户、热评的爬取和词云展示
    • (三)、杭州城区豆瓣热评的爬取和词云展示
  • 四、系统关键技术实现
    • 1)爬虫设计与实现;
    • 2)数据分析: 机器学习算法;
    • 3)可视化展示(Matplotlib模块):
    • 4)系统窗体设计(安装PyQt5)
    • 5)数据库设计与实现
  • 五、系统特色总结
    • (一)、界面简洁性
    • (二)、技术复杂度

做的比较粗糙,只花了3个晚上的时间赶工出来的,大家稍微参考一下。

一、业务需求分析

(一)网易云需求分析

网易云音乐主打歌单,社交,发现和分享,除了能够了解自己的好友以及周围人的喜好之外,应用还会通过用户的使用习惯推荐给用户一定量的歌曲,在算法的助力下,推荐功能的质量尚可。
网易云音乐区别于传统音乐软件的最大特点就是将社交属性融合了进去并拥有优质的评论区。让用户在听音乐之外还有一些额外的享受。如果用户想知道自己认识的人都在使用网易云音乐听什么歌曲以及自己所在地什么歌曲受欢迎都可以通过网易云音乐来查询。如果她或他是用户所关心的人,除了通过朋友圈之外,网易云音乐的社交途径也是一个很好的了解渠道,一个人喜欢的歌曲往往可以映照出她或者他的心境 。

图1-优质的评论区

网易云音乐的网红广告文案来源就是网易云音乐的优质评论区。翻看一下网易云音乐的评论区,很能够将用户带入其中。下面截取《后来的我们》主题曲评论区的部分精彩评论。

图2-《后来的我们》主题曲评论区

从中不难发现网易云音乐的评论区能够很好的让用户感受到歌曲的意境,评论区中几乎没有与歌曲的内容完全无关的东西,也没有大多数评论区存在的语言谩骂等行为。使用网易云音乐的时候一边听歌区一边翻看歌曲的评论区是一种独特的享受。
但是对于一位普通用户来说,没有足够的时间去翻看过多的评论,所以用一个本地的的可视化平台来进行网易云用户与评论数据分析,帮助用户进行更加形象、数据更具体地了解一首歌曲的受众和类型。

(二)豆瓣需求分析

豆瓣网起初是以评价书刊、电影、音乐为网友参考选择的一个网站。后逐渐发展扩大,吸引音乐人、影评人、各行各业的怪才等驻扎此网站。其简洁独特的站内风格被很多文艺青年所推崇。 豆瓣网是一个社区网站,它通过用户自我创造与分享内容,形成无数个具有共同话题的小圈子,进而形成一个庞大的好友社区。目前,涉及的领域以个性的书评、影评和音乐评论等,为广大用户提供了一个互动交流的平台。
豆瓣用户常被冠以“文艺”、“小清新”的头衔,看完电影去豆瓣写写影评或许已经成为一种习惯,当时间久了,有时就想要回忆一下自己写过的影评,一定会“往事历历在目”吧。

图3-英雄联盟:双城之战评论区

看影评是高频、用户量大的需求,但是对于一位普通用户来说,没有足够的时间去翻看过多的评论,所以用一个本地的的可视化平台来进行豆瓣用户数据与评论数据的分析,帮助用户进行更加形象、数据更具体地了解一部影片的受众和类型。

二、系统功能需求分析

(一)分析预测功能

开发一个音乐影视数据分析系统,首先需要确定该系统要实现的功能是什么,也就是用户想要该系统所能做的工作。用户希望通过查询一首歌的听众信息和评论信息来了解该首歌是否是自己喜欢的类型,系统应该具备:显示歌曲排行榜,查询对应歌曲的用户年龄、等级、性别,显示影片排行榜。

(二)系统可视化功能

系统应该具备:用显示对应歌曲的用户年龄、等级、性别的条形图,显示对应歌曲评论的词云图、散点图、条形图、折线图、饼状图。显示对应影片评论的词云图、散点图、条形图、折线图、饼状图。
系统使用python爬虫技术获取影音网站的最新的评论信息,实现“词云”对电影和音乐网站网络文本中出现频率较高的关键词予以视觉上的突出,形成关键词云层或关键词渲染,经过数据清理和词频统计之后对评论信息进行词云展示,从而过滤掉大量的文本信息,使浏览网页者一眼扫过文本即可领略文本主旨。

三、系统功能设计

基于上述对系统的功能分析,定于该系统由如下几个功能实现:

(一)、系统设计展示分析

图4-系统初步设定

本系统由主要有两个部分组成,分别是网易云音乐用户信息、热评的爬取和词云展示以及杭州城区豆瓣热评的爬取和词云展示。

图5-统计图形选择

并添加了如下工具栏:折线图等统计图形的选择丰富了用户的选择,图形显示区兼顾到了用户的体验可以由用户来自定义输出,做到了较好的人机交互性。

(二)、网易云音乐用户、热评的爬取和词云展示

通过代码获取音乐排行榜信息并分析音乐排行榜网页,爬取音乐列表爬取歌曲单独网页热评信息后进行处理与词频统计后进行词云显示。

图5-网易云音乐排行榜爬取

图6-网易云音乐爬取歌曲选择

图7-网易云音乐《予你》用户信息爬取

图8-网易云音乐《予你》用户信息条形图

图9-网易云音乐《予你》评论词云图

图10-网易云音乐《予你》评论散点图

图11-网易云音乐《予你》评论折线图

图12-网易云音乐《予你》评论条形图

图13-网易云音乐《予你》评论饼状图

图14-网易云音乐《予你》评论地区热力值图

(三)、杭州城区豆瓣热评的爬取和词云展示

与音乐榜单类似,电影榜单网页信息爬取是通过获取电影评论信息后经过处理与词频统计进行词云显示。

图15-豆瓣杭州市电影排行榜

图16-豆瓣爬取影片选择

图17-豆瓣《扬名立万》影片评论词云图

图18-豆瓣《扬名立万》影片评论散点图

图19-豆瓣《扬名立万》影片评论条形图

图20-豆瓣《扬名立万》影片评论折线图

图21-豆瓣《扬名立万》影片评论饼状图

系统业务流程则用流程图表示,如下所示:

图22-系统业务流程图

四、系统关键技术实现

1)爬虫设计与实现;

设置header之后,使用requests库代替原本的request,以便顺利爬取网页html资源resp,对源文本转码之后获取文本信息,使用beautifulSoup进行网页解析,然后找到排行榜的各个资源id,并将a标签收集整理成列表。之后使用for循环遍历列表,通过观察列表中的元素资源的id,元素的content内容是资源的名字,按照这个规律将元素强制转换成字符串截取获得id,使用.text获得资源名,存入列表并返回。

图23-分析网页函数

使用for循环遍历列表,通过观察可知,列表中每个元素第19-29个字符是歌曲的id,元素的content内容是歌曲的名字,按照这个规律将元素强制转换成字符串截取获得id,使用.text获得歌名,存入nowplaying_list并返回。
同时根据歌曲的id和爬取评论的页数来爬取评论,先根据歌曲的id配合前缀域名得到歌曲评论存储信息地址,再根据页数爬取,每隔十页爬一次评论。
进入评论信息地址之后无需UTF-8转码直接获取文本,beautifulSoup解析代码后强制转换成字串,然后根据内容关键词进行分割得到列表,观察可得截取列表元素中引号前面的部分,即用户评论的内容。

图24-爬取评论内容的函数

通过for循环遍历将评论加入列表eachCommentList,并作为函数值返回,用于主函数的调用。同理可以进行用户ID、年龄、等级和性别的分析。

图25-爬取用户ID的函数

图26-爬取年龄、等级、性别的函数

2)数据分析: 机器学习算法;

调用分析网页函数获得网页内容,然后指定列表中某一资源,for循环调用评论爬取函数爬取该资源的其中若干页评论,然后将评论的数据转换为字串。然后使用正则表达式去掉标点后使用jieba进行中文分词,然后for循环遍历删除本地准备好的停用词。

图27-结巴分词
正则表达式去掉标点后使用jieba进行中文分词,然后for循环遍历删除本地准备好的停用词。之后根据爬取的评论分辨电影是剧情、动作、科幻 喜剧、动画等类型,如果根据所获得的内容无法分辨,则将该电影归类为其他。
最后调用WordCloud库得到词云图,然后使用matplotlib库进行词云图展示。

图28-词云图函数

3)可视化展示(Matplotlib模块):

词云图、条形图、散点图、折线图、饼图、热力值图等。

图29-散点图代码及其实现


图30-条形图代码及其实现


图31-折线图代码及其实现


图32-饼状图代码及其实现


图33-词云图代码及其实现

图34-评论地区热力值图

4)系统窗体设计(安装PyQt5)

QtCore:包含了核心的非GUI功能。此模块用于处理时间、文件和目录、各种数据类型、流、URL、MIME类型、线程或进程。
QtGui包含类窗口系统集成、事件处理、二维图形、基本成像、字体和文本。
Qtwidgets模块包含创造经典桌面风格的用户界面提供了一套UI元素的类。

图35-PyQt部分代码及主界面

5)数据库设计与实现

通过sqlite3实现与数据库的连接同时将获得的信息存储到数据表中,通过执行insert into music values()的sql语句将获得的评论各项信息以一定的顺序存储到数据库中,conn.commit()这句来提交事务。

图36-数据库连接

图37-评论存储库

图38-电影库

图39-歌曲库

五、系统特色总结

(一)、界面简洁性

该系统使用了窗口化布局,简洁明了。对初次使用该系统的用户有着良好的交互性。

图40-canvas画布

用户首先观察到的模块是canvas画布,用户所要生成的图像会在这里进行显示,显示完成后用户可通过画布上面的工具栏进行各种个性化操作。
通过代码获取音乐排行榜信息并分析音乐排行榜网页,爬取音乐列表爬取歌曲单独网页热评信息后进行处理与词频统计后进行词云显示。
折线图等统计图形的选择丰富了用户的选择,图形显示区兼顾到了用户的体验可以由用户来自定义输出,做到了较好的人机交互性。
其次除了基本的散点图、折线图、条形图、饼状图外,我还选择了pyechart来生成听众所在地的热力图。

图41-网易云音乐《予你》评论地区热力值图

同时,数据库语言SQL的运用也是本程序的一大亮点。本程序通过DB navigator在Pycharm中的插件,以及sqlite3库的使用,实现了数据库的可视化,给日后对数据进行更新、使用都有着极大的方便。

图42-词云数据库

(二)、技术复杂度

本次课程设计采用python的PyQt5界面设计库和matplotlib数据可视化展示库,词云图生成的wordcloud库,以及SQL语言实现数据库存入。多个库函数的配合关系众多,本次实验的大体思路是建立GUI的类代码,然后在主函数中建立调用类,实例化GUI类的对象,并引入music和movie两个py代码中的数据爬取和评论分析函数,然后获取内容存入shu据库中方便使用,整个系统需要五个代码库的配合运行,调度复杂性高。

链接: https://pan.baidu.com/s/1UYCemHAp24BEi900-N_OnQ
提取码: whm9
拿走的话点个赞叭!谢谢

网易云豆瓣数据分析——爬虫(结尾附代码相关推荐

  1. 爬虫python代码网易云_python爬取网易云音乐热歌榜实例代码

    首先找到要下载的歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更改你要保存的目录,目录要先建立好文件夹,例如我 ...

  2. Python的网易云音乐数据分析系统 爬虫 echarts可视化 Flask框架 音乐推荐系统 源码下载

    Python的网易云音乐数据分析系统 爬虫 echarts可视化 Flask框架 音乐推荐系统 一.技术说明 网易云音乐数据(歌单.用户.歌词.评论)Python爬取Flask框架搭建ECharts. ...

  3. 【毕业设计_课程设计】基于Spark网易云音乐数据分析

    文章目录 0 项目说明 1 系统模块 2 分析内容 3 界面展示 4 项目工程 0 项目说明 基于Spark网易云音乐数据分析 提示:适合用于课程设计或毕业设计,工作量达标,源码开放 1 系统模块 包 ...

  4. 破解网易云js加密,爬虫获取网易云评论

    破解网易云js加密,爬虫获取网易云评论 抓包 这里是对网页版的网易云音乐进行抓包,分析网络请求,url https://music.163.com/#/song?id=36229055 然后可以发现 ...

  5. python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜 python爬取网易云音乐热歌榜实例代码...

    想了解python爬取网易云音乐热歌榜实例代码的相关内容吗,FXL在本文为您仔细讲解python爬取网易云音乐热歌榜的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:python,网易热歌榜 ...

  6. python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜实例代码

    首先找到要下载的歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更改你要保存的目录,目录要先建立好文件夹,例如我 ...

  7. python爬取歌曲_python爬取网易云音乐热歌榜实例代码

    首先找到要下载的歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更改你要保存的目录,目录要先建立好文件夹,例如我 ...

  8. python爬取音乐排行_python爬取网易云音乐热歌榜实例代码

    首先找到要下载的歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更改你要保存的目录,目录要先建立好文件夹,例如我 ...

  9. Python 网易云音乐评论爬虫

    引言 之前网易云音乐和农夫山泉合作,将热门评论印在农夫山泉上引爆了朋友圈.于是想爬取一下网易云的评论.网上搜了一下,对于网易云评论的爬虫不少,主要参考这篇文章:对网易云音乐参数(params,encS ...

  10. PHP网易云音乐热评API接口代码

    PHP网易云音乐热评API接口代码 输出数据格式:josn 直接采集网易音乐调用,非第三方接口! 刷新php文件即可展示随机不同的网易最新热门音乐播放连接.热评.名称标题.简介.封面图等等! 使用方法 ...

最新文章

  1. html中的插入特殊符号的方法,在Word2016中插入特殊符号的方法
  2. Js Chars应用
  3. POJ 2823-Sliding Window单调队列解题报告
  4. 听说你对 ES6 class 类还不是很了解
  5. PTA8、列表偶数位置的元素操作 (10 分)
  6. python简单程序实例-python实现的简单窗口倒计时界面实例
  7. Ajax json 数据格式
  8. vim配置运行python3快捷键_Linux VIM8 Python3 编辑器配置文件
  9. yum mysql 设置密码_Linux下的 Mysql 8.0 yum 安装 并修改密码
  10. C专家编程第二章,c语言特性的不足
  11. 从博弈论看高薪行业岗位
  12. 在VMware 16.2.2中安装Windows7
  13. matlab 彩色图片分解,MATLAB 彩色图像分割
  14. 已解决:win11无法连接网络共享打印机的方法
  15. ★★★Windows系统进程列表完全解析★★★
  16. elementUI表格气泡乱串、闪烁、位置偏移问题解决(自制气泡,计算位置,箭头永远指向当前元素)
  17. XML 中的 xmlns 等属性的意义
  18. 基础篇第一版---Linux 档案与目录管理 lt;摘自鸟哥的私房菜gt;
  19. MPLS+BGP产生的数据层面的路由黑洞详解
  20. 用java实现的资源管理器

热门文章

  1. java实现角色+武器攻击小游戏
  2. 乔布斯全新采访曝光:吐槽微软,回应争议,还要把Mac扔出窗外,然而…
  3. iOS 实现3Dtouch
  4. 18、Python第二节
  5. Android点9图的使用与制作工具推荐
  6. 洛谷 P1725 琪露诺
  7. WixSharp打包软件安装包入门教程
  8. dns配置异常怎么修复_电脑出现dns错误不能上网怎么办?dns错误修复方法
  9. Blender学习-考拉课程学习记录
  10. 14.hibernate的入门