选的课程方向是爬取网易云音乐某首歌曲的用户评论内容和评论时间,观察每天哪个时间段的评论信息最多,每周哪天的评论信息最多。然后分析该歌曲的用户性别分布和年龄分布。所以首先需要通过爬虫来爬取评论信息和用户信息,然后通过可视化方法来统计该信息。

由于网易云音乐有官方的API接口,所以获取用户信息这一步就变得简单。另外可视化部分,通过pyecharts工具进行可视化操作。
网易云官方API
网易云官方API接口
pyecharts文档
pycharts中文文档

首先爬取用户信息:

    url = 'https://music.163.com/api/v1/resource/comments/R_SO_4_' + str(songid) + '?csrf_token='data = {'params': params, 'encSecKey': encSecKey}

https://music.163.com/api/v1/resource/comments/R_SO_4_
上面这部分是官方接口的基础URL,由于网易云评论是Ajax类型,所以我们去评论的界面右击检查,单击R_SO_4_’ + str(songid) + '?csrf_token=这个包,发现表单数据为

由此可知,当我们对网易云评论界面发起请求时,需要加入这部分的表单数据。对于params和encSecKey的生成来源以及构造方法,参考:
添加链接描述

通过构造URL之后,便可对其发起请求,得到json格式数据。
第一页的json格式如下:

第一页,所需要的键主要包括comments和hotcomments分别对应评论以及热门评论,除此之外我们需要获取total这个键来得知所要爬取的页数。
comments键中包括每个用户的评论信息,我们这里需要的主要是用户名成,用户内容和用户ID,分别对应这nickname,content和userId。

通过爬取,我们将得到的信息保存到xls或者csv文件中,亦或者保存到数据库当中,这里就简单使用了xlwt库来保存数据。

这里的评论时间还没有处理,暂时是通过时间戳来保存的。得到评论信息之后,通过pyecharts来可视化数据。

input={"id":id,"time":pro_times}//id为编号,pro_times为处理后的时间戳
df=pd.DataFrame(input)//转化为dataframe格式
df["time"]=pd.to_datetime(df['time'],unit="s")//将时间戳转化为具体时间
df["day"]=df['time'].dt.date//将时间规整为以天为单位
curve_day=df["id"].groupby(df["day"]).count()//统计分布line=Line("评论时间(按天)分布")
line.use_theme('dark')
line.add("",curve_day.index.values,//时间curve_day.values,//该时间对应的评论数is_fill=True,
)
line.render(r"以天为单位的评论时间分布曲线.html")

由此可以得到评论数随日期的变化:(以小时为单位同理)


爬取完用户信息之后我们需要通过之前爬取的用户ID来继续爬取用户信息,包括评论用户的性别,年龄等。

url="https://music.163.com/api/v1/user/detail/"+str(user_id)

以上为爬取用户信息的基础URL
通过爬虫得到的json数据如下:

由于json数据比较多,这里只截取了了所需的一部分,其中包括gender,birthday和city。city这部分是通过城市编码的形式来表示的,所以需要搞清楚对应的城市。

url='http://www.mca.gov.cn/article/sj/xzqh/2018/201804-12/20180810101641.html'

通过对上面的url进行爬取,得到了对应的城市编码

然后匹配了对应的城市,最终将用户的统计信息保存到xls或者csv文件。

得到用户信息之后,继续通过pyecharts来进行可视化工作。
通过使用pyecharts自带的geo,生成了热力图

配色因为是冬天就搞了个寒冰色,配色啥的真的头痛。附带RGB。
RGB编码
最后是年龄分布和性别比例:

网易云音乐用户信息爬取以及可视化相关推荐

  1. Python网易云音乐单曲爬取

    Python网易云音乐单曲爬取 代码: import requests import osdef develop(path,url):song_url = urlsong_id = song_url[ ...

  2. Python-Selenium爬虫之网易云音乐歌曲歌词爬取并保存到本地(详解分析+代码实现)

    文章目录 一.项目介绍 二.所需技术 三.网页分析 3.1 分析一级页面响应内容 3.2 分析二级页面响应内容 3.3 分析三级页面响应内容 3.4 分析四级页面响应内容 四.分析小结 五.代码实现 ...

  3. 网易云音乐评论爬虫:爬取全部热门歌曲及其对应的id号(附全部代码)

    今天我给大家介绍一下用Python爬取网易云音乐全部歌手的热门歌曲. 由于歌手个人主页的网页源代码中还嵌入了一个子网页(框架源代码里面包含了我们需要的信息),因此我们不能使用requests库来爬取, ...

  4. java爬取网易云歌单_GitHub - th720309/163music_spider: 网易云音乐歌单爬取

    今天花了一点时间抓取了网易云音乐的热门民谣歌单,共1500热门民谣歌单,后续有时间会爬取其他分类. 下面记录一下java爬取过程.见下: 爬虫过程 1.首先抓取各个歌单的url与标题 public s ...

  5. 网易云歌单信息爬取及数据分析(1)爬虫部分

    爬虫思路: 网页分为两个部分,歌单广场和歌单详情页.总体思路是先从歌单广场获取所有的URL然后去详情页进行解析. 最后的数据大概这个样子: 歌单广场: 在广场中需要实现获取所有歌单详情页的URL链接. ...

  6. python爬取网易云音乐热评,爬取网易云音乐热评[附上音乐下载]

    [Python] 纯文本查看 复制代码import requests import time,os from bs4 import BeautifulSoup class Music_down: de ...

  7. 利用Python爬取基于AES对称加密算法的网易云音乐用户评论数据

    本文利用Python2.7根据网易云音乐歌曲ID爬取了该歌曲的所有用户评论数据.以id是28875120的歌曲<小岁月太着急>为示例,通过Chrome的DevTools工具获取已加密评论数 ...

  8. 网易云音乐歌手歌曲、用户评论、用户信息爬取

    这里以邓紫棋歌手为例,可以去网易云音乐看她的主页: 所有完整的代码在楼主的github:https://github.com/duchp/python-all/tree/master/web-craw ...

  9. Python爬虫之网易云歌单音频爬取(解决urlretrieve爬取文件不能播放问题)

    网易云歌单音频爬取 写在前面:最近学习爬虫,对小说和图片都进行过简单爬取,所以打算爬取音频,但是其中遇到点问题也解决了,写下博客记录并希望对大家也有帮助. 爬取对象:对于目前主流的几个音频播放网站,我 ...

最新文章

  1. 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java
  2. 牛顿方法、指数分布族、广义线性模型—斯坦福ML公开课笔记4
  3. 浮点数和整数的区别python_Python中整数和浮点数
  4. der解码规则_DER编码简介
  5. 注解参数怎么使用变量_硅橡胶胶水有哪些特点?使用参数表现的怎么样?如何储存?...
  6. 【转】4.SharePoint服务器端对象模型 之 使用CAML进行数据查询
  7. Oracle复习(知识点、练习题、实验)
  8. vue.js tutorial for beginner [Is it possible for us to learn vue.js in a minute?]
  9. 聊聊人工智能领域的工作状态?知乎回答
  10. POJ3069 Saruman's Army【贪心】
  11. 编程语言-Java-问题整理
  12. (10)二进制文件方式部署Kubernetes高可用集群----------部署node节点
  13. 经典50道SQL练习题
  14. 落地SOA成为中国电信战略转型第一步
  15. css只设置背景图片半透明,css 设置背景色或图片半透明的方法(图文)
  16. 多变量微积分笔记10——二重积分的应用
  17. 字节跳动+京东+美团+腾讯面试总结,附赠课程+题库
  18. dockerkubernetes教程,隔壁都馋哭了
  19. 哈利.波特与混血王子
  20. 数字MIC(es7202 PDM协议)MIC录音声音较小

热门文章

  1. 使用 VirtualBox 虚拟机在电脑上运行 Android 4.0 系统,让电脑瞬间变安卓平板
  2. python字符串的内部函数_「Python」字符串操作内置函数
  3. 利用Java提取excel内容
  4. android中使用饼形图
  5. 前端模拟自动解析手机号姓名地址
  6. IP地址的划分及其范围
  7. 华为回应出售手机业务传闻:假消息;微软将ChatGPT整合到更多工具中:不用写代码就能开发应用;苹果更新Mac产品线|极客头条
  8. Java游戏用户登录注册_用java类模拟游戏的账号的登陆,注册,退出。 1.没有账号,需要注册。 2.注册完成后方可登...
  9. CoAP协议学习笔记——CoAP格式详解
  10. css选择器,什么是css选择器