Python的网易云音乐数据分析系统 爬虫 echarts可视化 Flask框架 音乐推荐系统
一、技术说明
网易云音乐数据(歌单、用户、歌词、评论)Python爬取Flask框架搭建ECharts、WordCloud可视化项目。系统分为:数据采集模块、数据分析处理模块、数据存储模块、以及数据可视化呈现模块。
项目目标:
1. 实现通过搜索关键词,对相关歌曲的主要信息进行展示
2. 对搜索出的信息进行歌单、歌词、评论、听众地域分布、活跃时间段等几个方面的数据进行可视化分析。
技术环境
Python3、urllib库、Flask框架、ECharts.js、WordCloud库、SQLite3数据库
基本数据:
1.爬取歌单预览页,所有歌单数据,35单*38页,(歌单详情url)
2.爬取歌单详情页(歌单标题、歌单作者、作者url、歌单创建日期、歌单收藏量、歌单分享量、歌单评论数、歌单标签、歌单介绍、歌单歌曲数量)
3.爬取歌单内音乐(歌曲id、标题、时长、歌手、专辑、歌曲url)
4.爬取歌曲详情(歌曲id、歌曲标题、歌手、专辑、歌词、评论数、评论内容)
5.爬取歌曲歌单评论内容(歌单歌曲辨识id、评论者id、评论者名、评论内容、评论时间、评论点赞量、评论者url-地区累计听歌量)
分析方向:
1.数据库可视化:用户搜索关键词,完成相应内容可视化的展现。
1.数据呈现的多样化:多种图表形式。(用户活跃时间分布、用户地域分布、歌单标签排名、歌曲情绪、评论区词云、歌单歌曲词云、)
2.数据维度的设计:能够从不同维度的数据分析,为用户提供更多的价值
3.界面表现的美化(可点击保存词云图片,根据歌曲id生成评论区词云、根据歌单id生成歌单词云)
二、项目截图
三、补充
设计语言:Python+SQL+HTML+CSS+JS
数据爬取:selenium+request+json+time+random
数据存储:SQLite
数据清洗:re+replace+time.localtime+time.strftime
后端搭建:PalletsFlask
前端搭建:TwitterBootstrap
图表展现:ApacheECharts
词云制作:pyplot+jieba+wordcloud+Image+numpy
(1)selenium主要用webdriver来模仿认为点击爬取页面数据,request负责伪装headers获取页面,json负责将获取到的文本数据转换为字典数据。time和random负责随机访问频率。
(2)re是通过正则表达式提取一定规则的文本内容。replace主要取出部分不要的字符。time模块负责转换json时间
(3)Flask通过编写app路由处理请求响应,然后以render_template渲染视图效果。
(4)jieba负责提供分词、识词过滤,Image负责背景图的图像处理,numpy负责矩阵运算,中文显示需要的空间,wordcloud负责形成有遮罩效果的图形,pyplot是负责绘出最终图形。