上周六晚,爱奇艺的独家综艺《乐队的夏天》总决赛终于落下了帷幕,虽然决赛过程有些“曲折”,但是我最喜欢的刺猬乐队,仍然凭借自己的硬实力,最终排在第二名!

值得一提的是,这只乐队的吉他手兼主唱也是一位程序员。

刺猬乐队其实成立10多年了,很有实力。

但是在老牌乐队云集的这次比赛中,第一次31进16时仅仅排在第12名,那么他又是如何逆风翻盘的?

让我来复盘一下。

获取数据

获取爱奇艺视频《乐队的夏天》各期节目的下面的评论。

F12,Network查看异步请求XHR,找到评论接口。

不要以为这里结束了,我们来看一下Request URL

https://sns-comment.iqiyi.com/v3/comment/get_comments.action?content_id=2537368600&types=time&last_id=213811925021&business_type=17&agent_type=119&agent_version=9.9.0&authcookie=

经过测试,大部分参数都是不变的,只有“content_id”和“last_id”,content_id对于每一期节目是固定的,我们可以自己手动获分析获得。那么last_id是怎么来的?

给大家放一下连续几页的 last_id 看一下吧。

213811925021213372828221212600215021211973666621

它们之间并没有什么累加的规律。

放弃的同学可以直接翻到上一张图,标黄的部分“213811925021”,正是我们看到的第一个 last_id 参数。

也就是说每个json里的最后一个 CommentId ,作为下一个url的 last_id 使用。

那么我们需要注意的就是在解析json的过程中需要返回最后一个 CommentId 。

def get_comments(url):    data = []    doc = get_json(url)    jobs=doc['data']['comments']    for job in jobs:        dic = {}        global CommentId        CommentId=jsonpath.jsonpath(job,'$..id')[0] #id        dic['id'] = CommentId        dic['content']=jsonpath.jsonpath(job,'$..content')[0] #评论        add_Time=jsonpath.jsonpath(job,'$..addTime')[0]  #时间        dic['addTime'] = stampToTime(add_Time)  #转化时间格式        dic['uid']=jsonpath.jsonpath(job['userInfo'],'$..uid')[0] #用户id        dic['uname']=jsonpath.jsonpath(job['userInfo'],'$..uname')[0] #用户名称        dic['gender']=jsonpath.jsonpath(job['userInfo'],'$..gender')[0] #性别        data.append(dic)    return data,CommentId #获得每个json里的最后一个CommentId 

剩下的循环爬取就好。汇总后就获得了2.6万条评论数据。

数据分析

一个乐队名称在每期评论中的提及次数,可以侧面反映这只乐队在这期节目后受到观众喜欢的程度。

#乐队在评论中的提及数a = {'痛仰':'痛仰', '新裤子':'裤子','猴子军团':'猴子军团','鹿先森':'鹿先森','旺福':'旺福','九连真人':'九连','盘尼西林':'盘尼西林|青霉素',    '反光镜':'反光镜','click15':'click15|#15','海龟先生':'海龟先生','皇后皮箱':'皇后皮箱','面孔':'面孔','和平和浪':'和平和浪','MR.MISS':'MR.MISS|MISS',    'VOGUE5':'VOGUE5|VOGUE','薄荷绿':'薄荷绿','熊猫眼':'熊猫眼','果味VC':'果味VC','BONGBONG':'BONGBONG','醒山':'醒山','刺猬':'刺猬','旅行团':'旅行团',    '麋鹿王国':'麋鹿王国','宇宙人':'宇宙人','黑撒':'黑撒','南无':'南无','斯斯与帆':'斯斯与帆','葡萄不愤怒':'葡萄不愤怒','茶凉粉':'茶凉粉',    '青年小伙子':'青年小伙子','Mr.WooHoo':'Mr.WooHoo|WooHoo',}for key, value in a.items():    data1[key] = data1['content'].str.contains(value)staff_count = pd.Series({key: data1.loc[data1[key], 'content'].count() for key in a.keys()}).sort_values()print(staff_count)

以第一期为例,结果如下。

每期节目的乐队排名都依次降序盘点汇总一下。

结果还蛮惊讶的。

除去第二期他们没有参加,也就是说从第三期开始,刺猬乐队便开始展现实力,几乎每一期都能让观众如此喜欢。

数据可视化

筛选出评论中提到刺猬乐队的评论数据。

data_ciwei= data[data['content'].str.contains('刺猬')]

爬取得到的数据字段其实没几个。

简单看一下喜欢他们的观众的性别分布。

from pyecharts import Pie# 生成饼图gender_data = data_ciwei.groupby(['gender'])gender_cw = gender_data['gender'].agg(['count'])gender_cw.reset_index(inplace=True)attr = ['女', '男', '无']v1 = gender_cw['count']pie = Pie("评论提及刺猬乐队的用户性别分布", title_pos='center', title_top=0)pie.add("", attr, v1, radius=[40, 70], label_text_color=None, is_label_show=True, legend_orient="vertical", legend_pos="left", legend_top="%10")pie

使用pyecharts作图。

至于评论的长度之类的就不做分析了。

最后看一下词云,不用jieba分词试试。

from pyecharts import WordCloud# 生成词云bj_tag = []for st in data_ciwei.dropna(subset=['content'])['content']:    bj_tag.extend(st.split(' '))name, value = WordCloud.cast(Counter(bj_tag))wordcloud = WordCloud(width=1000, height=500)wordcloud.add("", name, value, word_size_range=[18, 250])wordcloud

还是使用pyecharts作图。

可以看出观众对于刺猬乐队的要么是直接夸,要么是和其他强队做对比,总体都是希望它能越来越好。

刺猬总是强调摇滚乐是属于年轻人的,35岁之后可能就不那么摇滚了。

不过35岁之后,他们又将去向哪里呢?

也许等到中年的子健,面对着年轻的乐手们会说:

我不是针对谁,我是说在坐的各位,都没我代码写的好!

本文相关爬虫和数据分析代码:

  • 小红书,“黄”了

  • 苹果谷歌双双被曝,你的手机正在窃听你的生活

  • 遇事不决赖毛子,美国这次打算封杀变脸APP

数说:这只程序员组建的乐队为何能进HOT5?相关推荐

  1. 有梦想就去追,程序员辞职组乐队被老板资助

    程序员被老板资助玩乐队是什么感受? 29岁的赵东晓是某公司客户端的开发工程师,大学期间,他组建了沉迷乐队,不仅拿下了2013年迷笛全国校园乐队大赛总冠军,2015年更受到央视的关注,为其拍摄专题纪录片 ...

  2. python程序员脱单攻略_作为一只程序员,如何脱单?

    哈哈,程序员追妹子.程序员要先认识妹子.你是不是不会修电脑的程序员,哈哈哈!下面小栈长为大家分享把妹小技巧,愿广大单身猿能在11月11日脱单哈!(VX公众号:速学Java) 1.关于没有话聊 我不知道 ...

  3. 程序员,你想不想进大厂?

    文章转载自公众号  大飞码字 , 作者 大飞码字 "怎样才能进大厂?" "我是一个二本计算机专业的学生,怎样才能进大厂?" "我是一个非计算机专业的学 ...

  4. 一只程序员的成长与思考

    学号16340290 本人学院:数据科学与计算机学院(http://sdcs.sysu.edu.cn/) TOC 目录 1. 修养与人生 2. 心在万物外 3. 谜题 4. 如果 谢春花-–借我 1 ...

  5. 程序员都长得丑?颜值底线是程序员?

    一提到程序员妹子们第一印象是什么?加班,秃头,不修边幅,天天格子衫. 九月将近,年度最大"催肥盛典"还有几个月即将来临,不知道去年的阴影是否还停留在你们脑海,各种单身男女的日子可以 ...

  6. 盘点那些跨界玩到飞起的程序员们!

    作者 | 年素清 责编 | 伍杏玲 出品 | 程序人生(ID:coder_life) 在2019国家地理旅行摄影大赛中,最重磅的奖项全球总冠军大奖和城市组一等奖,都颁给了一位来自中国的年轻户外摄影师- ...

  7. 疯狂的程序员1-40

    <疯狂的程序员>1 天已经七分黑了,屋里却还没开灯.这个全身黑衣服的男子突然像想起什么,从包里掏出烟,抽出一只,递给旁边的人:"兄弟,抽烟么?"――那烟是红塔山. 旁边 ...

  8. 老板发公告:11月成功程序员脱单,奖15天年假!

    整理 | 王晓曼 来源 | 程序人生 (ID:coder _life) 近日,上海一创业公司贴出的"脱单公告",引起不少网友的关注. 老板为员工脱单操碎心 据了解,该公司大部分都是 ...

  9. 太逆天!程序员当总统、拿下《国家地理》全球总冠军、成著名歌手!

    作者 | 年素清 责编 | 伍杏玲 出品 | 程序人生(ID:coder_life) 在2019国家地理旅行摄影大赛中,最重磅的奖项全球总冠军大奖和城市组一等奖,都颁给了一位来自中国的年轻户外摄影师- ...

  10. 快来!礼物替你选好了:2022年神秘的程序员周历!

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 空山松子落,幽人应未眠.   呼叫 ...

最新文章

  1. Java注解学习笔记
  2. SQL Server之存储过程基础知识
  3. 每天一个linux命令(6):rmdir 命令
  4. 在github上面下载文件夹的方法666
  5. 程序如何在两个gpu卡上并行运行_深度学习分布式训练相关介绍 - Part 1 多GPU训练...
  6. C/C++字节对齐问题
  7. Jupyter notebook 入门教程
  8. WinCE驱动的动态卸载
  9. 英国政府寻求在2022年成为“全球性网络力量”
  10. 2019 第二周 开发笔记
  11. 精度、速度完美平衡,最新图像分割SOTA模型重磅发布!!!
  12. 检查了一下同事工作,非常不满意
  13. 手把手教你申请计算机软件专利著作权(3)——软件使用说明书
  14. oracle临时表中数据消失了,oracle 临时表的使用
  15. 照片美妆---人脸老化
  16. 数码管显示原理:共阴极和共阳极的区别,静态显示程序。
  17. 工厂控制灯光系统小结(观小蜜蜂老师教学视频有感)
  18. 计算机打不开guest用户,guest账户打不开 浅析win10系统guest账户打不开的解决方法...
  19. Web前端开发规范手册-阿里云
  20. 找工作就像找对象,愿程序员不再孤单。。。

热门文章

  1. 我的博客之[网管日志]
  2. 配置rc.local开机自启动文件的疑问?
  3. centos7搭建nexus maven私服
  4. 阿里的dubbo 到底是用来干嘛的?
  5. 百亿条日志实时处理,为什么要用Flink?
  6. *第十五周*数据结构实践项目三【B-树的基本操作】
  7. 互联网金融的前世、今生和未来-系列三(今生):一场跨界的战争
  8. js页面传值,cookie
  9. FastDFS单机搭建以及java客户端Demo
  10. hadoop中MapReduce多种join实现实例分析