Python网易云音乐爬虫大数据分析可视化系统.md · MaverickMing/NetEaseCloudMusicDataVisualizationSystem

您所在的位置:网站首页 基于python的大数据 Python网易云音乐爬虫大数据分析可视化系统.md · MaverickMing/NetEaseCloudMusicDataVisualizationSystem

Python网易云音乐爬虫大数据分析可视化系统.md · MaverickMing/NetEaseCloudMusicDataVisualizationSystem

2024-05-27 22:30| 来源: 网络整理| 查看: 265

Python网易云音乐爬虫大数据分析可视化系统 第一章 绪论 1.1 研究背景及现状

2013年,在腾讯音乐集团的QQ音乐和广州酷狗计算机科技有限公司的酷狗音乐控制国内在线音乐市场主体的情况下,网易旗下的网易云音乐凭借其独特的音乐个性化推荐算法,以及其产品内浓厚而突出的社交氛围,令其冲出了互联网音乐竞争的重重阻挠,获得了和腾讯音乐酷狗音乐两大强劲对手抗衡的实力。网易云音乐的成功,除了其出色的营销手段、产品自身的独特体验感之外,被网易云音乐触动的听众用户群体的生活经历、状态、喜好和情绪是不可忽视的。

网易云的歌单文化很好的体现了自尊和自我实现的需求。尊重的需求是获得自尊和希望收到他人的尊重,而自我实现的需求是实现自我价值的需求。而这两者的需要,使得人相信自己的力量与价值,坚信自己有能力、有创造力。网易云音乐的副总裁一直提倡着依靠大数据的音乐运营模式,依托平台大数据技术让音乐的宣传发布更加高效更加精准,根据用户收藏、分享、点赞、评论的歌曲风格和偏好数据为用户每日6点推送“每日推荐”歌单30首。用户因此获得发现新歌曲的新途径,这种精准的数据分析与推送算法,满足了用户的需求,进一步提升了用户活跃的积极性,因此用户也积极地制作自己喜好的高质量的歌单,与此同时也会引发大部分人的收听与讨论,返予了网易云音乐效果极佳的正向反馈。

而网易云的评论文化则能够很好地体现用户群体的构成与用户群体当前的生活状态。了解用户群体的构成、潜在状态,即可精准地对不同的用户群体推送、定制服务内容。

若能深度挖掘这些数据背后的意义,就能够正向地挖掘用户用户更多的业务需求以及支持平台运营的决策方向。本文从大数据数据可视化分析的视角出发,试图通过海量的用户信息和用户行为数据,分析和探讨网易云音乐客户群体的音乐类型的喜好、收藏分享评论等行为的倾向。

1.2 研究目的和意义

在这个信息技术高速发展的新时代,几乎在所有信息化技术化的大平台里,都囤积、隐藏了海量的、有待挖掘的、有意义的客户行为数据源,这些数据在大数据技术发展之前都是被埋没而无人问津的,甚至因为数据存储费用的高昂价格而被简单地清理抹除掉,丢失了通过数据挖掘将囤积数据转换为实体价值的机会。

而python语言的爬虫技术应用给数据挖掘带来了无限的可能,通过挖掘网易云音乐平台的用户数据进行分析,可以了解用户数据背后的具体含义,从而归纳出对应数据的特点,为平台的运营决策者提供更加优质、丰富、有利的决策、建议。

本设计的意义是通过大数据分析可视化Web平台,将网易云音乐用户数据行为的倾向结果以简单明了的方式呈现出来,同时提供一定的数据查阅与可观赏性。

1.3 国内外研究现状

现如今,有不少借助python爬虫技术对各种招聘、餐饮、旅行等领域的信息进行爬取,然后通过进行可视化展示的研究探讨较多,绝大部分的研究只是做到了通过Python爬虫对网易云音乐里的评论、歌单、用户、歌词等数据进行采集爬取,利用PyCharts、WordCloud生成对应的图表、词云图然后直接对图表进行行为分析,而结合Flask、Ecahrts搭建Web数据可视化平台,实现从数据到可视化图表转换展示的研究相较甚少。

1.4 论文主要研究内容

本文主要研究从如何采集数据到如何搭建Web可视化图表的过程展开研究,包括但不限于所需技术和原理说明,采集数据的需求、手段和实现思路,对采集数据文本进行预处理即数据清洗与永久性数据库存储,对可视化web平台的构建与可视化图表的实现。

本文希望所作分析能为网易云音乐平台提供相应的歌单、歌曲的播放、收藏、分享、评论量一定的预测参考信息,也希望能为平台用户群体提供关于如何创建以及如何选择优质的歌单的参考;对网易云音乐平台如何提高用户使用率、活跃率、增强用户粘性以及给用户推送音乐信息具有一定的参考价值。

1.5 论文组织结构和安排

本论文共分为6章,论文具体的组织结构安排如下:

第一张 绪论。本章主要对论文的研究背景及现状、研究的目的和意义,网易云音乐数据分析的国内外研究现状、论文主要研究内容进行了介绍,并在本章的最后对文本的主要研究内容和论文的组织结构进行了说明。

第二章 相关技术。本章首先介绍了一些基础的理论知识,然后再对所需用到的技术和框架,如网络爬虫、Flask框架、ECharts框架等进行了介绍。

第三章 系统需求分析。本章对论文研究的系统进行详细的需求分析,包括系统的功能性需求和非功能性需求。

第四章 系统设计。本章介绍的是系统的设计,从系统的架构设计、数据表设计、系统服务器各个模块的功能设计,再到前端各个网页模块的设计都进行了详细的阐述,并对改系统的开发环境经行了详细说明。

第五章 系统实现与测试。本章对系统的各个功能模块的实现、数据分析模块的思路以及系统的功能测试都进行了详细的描述,并将系统数据分析可视化的结果进行了部分展示。

第六章 总结和展望。本章首先对论文的内容进行了总结描述,然后说明了目前系统中存在的问题和不足,以及关于系统后期改进的设想。

第二章 相关技术 2.1 网络爬虫 2.1.1 网络爬虫的简介

网络爬虫,其本质是一段按照一定规则,自动化抓取互联网信息的应用程序,可以从互联网上抓取对于我们有价值的信息。一个好的爬虫程序,会高效并且准确地从网上拿到使用者所希望获取的信息,节省人工重复行为如点击网页、鼠标点击、打开URL连接、复制网页内容、翻页等低效的时间。

网络爬虫的用途广泛。网络爬虫最常见的用途是用来做搜索引擎、采集数据、广告过滤等工作,强大的网络爬虫还能用于大数据的抓取,海量数据的分析,作用巨大。只要能通过URL地址访问到网络数据,均可用网络爬虫自动化爬取。

2.1.2 网络爬虫的架构

Python 爬虫架构主要由五个部分组成,分别是:调度器、URL管理器、网页下载器、网页解析器、应用程序(提取的有价值数据)。下面简单介绍一下各个组成部分:

**调度器:**相当于一台电脑的CPU,主要负责调度URL管理器、下载器、解析器之间的协调工作。

**URL管理器:**包括待爬取的URL地址和已爬取的URL地址,防止重复抓取URL和循环抓取URL,实现URL管理器主要用三种方式,通过内存、数据库、缓存数据库来实现。

**网页下载器:**通过传入一个URL地址来下载网页,将网页转换成一个字符串,网页下载器有Python官方自带的urllib2基础模块,还有第三方的网页下载器requests包。

**网页解析器:**将一个网页字符串进行解析,可以按照人为要求去提取有效信息,也可以根据DOM树的解析方式来解析。网页解析器有正则表达式、html.parser、beautifulsoup、lxml。

正则表达式。编写正则表达式提取网页内容的方式非常直观,解析器将网页转成字符串后,通过正则表达式模糊匹配的方式来提取有价值的信息。但是当文档DOM树比较复杂的时候,使用正则表达式的方法提取数据就会变得非常的困难,因为正则表达式只能通过模糊查询一定结构的文本信息,当DOM树结构复杂规律不明显的时候就容易提取到错误杂乱的信息。 html.parser。这是Python自带纯Java语言编写的文档解析器,也是根据DOM树结构来解析所需提取的内容,它能以高速且低出错率地提取HTML文件。 beautifulsoup。属于第三方的解析插件,它可以使用Python自带的html.parser进行解析,也可以使用lxml进行解析,相对于其他几种解析器来说要方便快捷且强大稳定。将一段html文档传入BeautifulSoup 的构造方法,就能得到一个文档树对象,然后通过传入一段字符串或一个文件句柄即可定位对应元素的位置并提取返回元素内容。 lxml。Ixml是一种第三方使用 Python 编写开发的解析库,可以通过形成DOM树对象的方式,迅速、灵活地处理 XML 和 HTML文件。

**应用程序:**就是从返回的网页中提取的有用数据组成的一个应用。

下面用一个图来解释一下调度器是如何协调工作的:

通过调度器的协调工作,将开发者提供的URL进行定向资源采集后返回到爬虫应用程序中,开发者即可通过调用各种方法,对返回的资源通过一定规则进行提取并保存。

2.2 Flask技术 2.2.1 B/S架构模式

B/S架构其实就是Browser/Server架构,该架构是随着互联网的发展出现Web后兴起的一种网络结构,是目前主流的也是基于Web的浏览器/服务器三层体系结构。

image-20210416155020974

这种模式统一了客户端,让核心的业务处理在服务端完成。该架构对客户端要求不高,客户无需安装其他软件,只需要在自己电脑或手机上安装一个浏览器,然后在浏览器访问对应的网站地址,即可就可以通过web Server与数据库进行数据交互。

而且,采用B/S架构的系统相较于C/S架构的系统,系统的维护和升级均在服务器端进行而客户端的浏览器无需修改,这样就极大地降低了系统维护的成本与繁琐程度。这也是本文选择B/S架构搭建应用的原因。

2.2.2 Flask框架概述

在2021年要实现一个Web应用后端开发框架,我们有许多种选择,较为主流的Web应用开发框架有基于JavaScript的NodeJS、基于Python的Django、基于PHP的Laravel这三种,而本论文选择的是基于Python编写的轻量级的Flask框架。

Flask作为一个轻量级的 Python WEB 开发框架,以其良好的扩展性和易用性,俘获了大量的簇拥者。它的作用主要是为了方便开发WEB应用程序。作为 WEB 框架来说,Flask框架仅保留了两个核心功能:请求响应处理和模板渲染。这两类功能分别由 Werkzeug(WSGI 工具库)和 Jinja(模板渲染引擎库)负责完成。

Flask框架主张“一切从客户端发起请求开始”,首先由Flask创建一个APP程序,当用户想要获取资源时,通过浏览器发起HTTP请求,此时WEB服务器使用一种名为WEB服务器网关接口的WSGI(Web Server Gateway Interface)协议,把来自客户端浏览器的请求,都交给Flask程序实例,然后Flask使用Werkzueg来做路由分发,找到客户请求的路由函数方法并执行,然后向WEB服务器返回一个由Jinja渲染后的网页文件,服务器再将访问资源响应给浏览器解析,最终浏览器显示返回的结果。

使用Flask框架,开发者只需要专心编写Flask APP的路由即可,节省大量重复造轮子的精力和时间。

2.3 数据可视化 2.3.1 ECharts可视化

Apache ECharts是百度开源后捐由Apache开源孵化的一个基于 JavaScript 的开源可视化图表库。

ECharts可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器如IE8/9/10/11,Chrome,Firefox,Safari等,底层依赖轻量级的矢量图形库 ZRender,能提供制作简单、样式直观、生动、可交互、可个性化定制的数据可视化图表。而且是由中国团队开发编写,官方网页有个性化的规范的使用教学和说明文档,非常适合中国开发者用以开发使用。

Echarts有丰富的图表类型,提供开箱即用的 20 多种图表和十几种组件,并且支持各种图表以及组件的任意组合;ECharts有着强劲的渲染引擎,如使用了Canvas、SVG 双引擎一键切换,增量渲染、流加载等技术实现了千万级数据的流畅交互;Echarts还提供了优雅的可视化设计,默认设计遵从可视化原则,支持响应式设计,并且提供了灵活的配置项方便开发者定制。

使用ECharts,开发者只需安装ECharts或者引入其对应的js文件,然后考虑使用JavaScript语言编写所需的可视化图表即可。

2.3.2 WordCloud可视化

词云图是一种用来展现高频关键词的可视化表达,通过文字、色彩、图形的搭配,产生具有冲击力的视觉效果,并传达有价值的信息。

而词云图由WordCloud通过形成 “关键词云层” 或 “关键词渲染”生成,能够对文本中出现频率较高的关键词进行视觉上的突出,能过滤掉大量的无效的文本信息,使用户只要一眼扫过文本就可以领略文本的主旨。WordCloud 是一款python环境下的词云图工具包,同时支持python2和python3,能通过代码的形式把关键词数据转换成直观且有趣的图文模式。

WordCloud可视化过程中所需引用的库较多,首先需要使用jieba库的cut方法对文本进行分词切割、识词过滤,然后统计文本词频,接着调用Image库选择一个干净的背景图层进行图像处理,同时调用numpy库对处理后的图像进行矩阵运算,算出可显示文本的区域数组,然后是调用wordlcloud库生成wordcloud对象,传入numpy运算的空间数组,就可以通过generate方法将词频表中的词汇融入到指定的空间位置中去,最后即可调用pyplot库将wordcloud形成的最终图片绘制并保存到外部存储器中。

2.5 开发环境介绍

本文所用的操作系统是微软旗下的Windows 10系统,Windows操作系统以的用户交互著名。开发过程中采用的Python版本是3.7.7版本,所使用的IDE集成开发工具是Jetbrains旗下的PCharm2020.3版本,所采用存储数据的数据库是SQLite

第三章 系统需求分析 第四章 系统设计 4.1系统架构

4.1.1 系统组成

4.1.2 热点分析流程及可视化方式

4.1.3 系统设计流程及主要技术

4.1.4 可视化分析流程

4.2 数据库设计

4.2.1 数据库概念结构设计

4.2.2 数据库表结构设计

4.3 系统功能设计

4.3.1 数据采集模块

4.3.2 后端动作响应模块

4.3.3 前端主页模块

4.3.4 前端数据可视化模块

4.4 本章小结 第五章 系统实现与测试 5.1 数据采集功能模块 5.2 数据分析处理模块 5.3 后端应用构建模块 5.4 前端数据可视化模块 5.7 系统功能测试 5.8 本章小结 第六章 总结和展望/结论 参考文献

[1]何雪锋.智联招聘数据分析与可视化系统设计[J].河北软件职业技术学院学报,2020,22(03):17-18+31.

[2]潘承佳,刘冬冬.基于python的招聘信息爬取与分析[J].电脑知识与技术,2020,16(27):102-104.

[3]罗安然,林杉杉.基于Python的网页数据爬虫设计与数据整理[J].电子测试,2020(19):94-95+31.

[4]边倩,王振铎,库赵云.基于Python的招聘岗位数据分析系统的设计与实现[J].微型电脑应用,2020,36(09):18-19+26.

[1] 基于PyEcharts的全球玉米贸易数据可视化系统建设及应用展望[J]. 贾利娟,刘娟,王健,周国民. 农业展望. 2019(03)

[2] 基于Python+Echarts的大数据可视化系统的设计与实现[J]. 陈俊生,彭莉芬. 安徽电子信息职业技术学院学报. 2019(04)

基于Python和Echarts的商品评价文本的可视化设计[J]. 穆翠霞. 电脑知识与技术. 2020,16(35)

基于Python网络爬虫技术的数据采集系统研究[J]. 钟机灵. 信息通信. 2020(04)

王瑞梅. 网络招聘数据可视化分析系统的设计与实现[D].河北师范大学,2020.

致谢

衷心的感谢计算机专业各位老师,在大学学习期间,给予了我极大地鼓励和帮助,在学习上给予了我严谨、耐心的指导,在生活上给与了我亲切、热情的关怀。老师们渊博的学识、谦逊、谨慎的治学作风,一丝不苟、尽职尽责的工作态度以及正直的为人之道,都将是我终身受益,并激励我始终刻苦努力。在此,我向各位老师表示崇高的敬意和衷心的感谢!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3