教你爬取抖音甜曲《好喜欢你》,感受荷尔蒙的气息

记不清这是实战第几篇了,你看看就知道了。。。

最近发现一首很火的歌,瞬间让你感受到浓浓的青春懵懂感,这就是王广允的《好喜欢你》。说实话,爬这种爱意浓浓的歌曲似乎不是我们这种单身XX应有的想法,但是还是想体会一下那些青春岁月里的小幸福,话不多说,代码走起来。

本来想这里直接贴上歌曲的链接,但是由于版权问题,大家可以去网易云自行听取哈。

我们这次爬取的信息主要是评论点赞前十的数据,并据此进行数据可视化操作,生成词云。

一、请求分析

我们首先打开网易云音乐的官网,进入《好喜欢你》的播放页面,然后按F12或者审查元素获取控制台信息。

我们这里通过浏览器中的歌曲的id来获取评论的链接,这是一个非常快捷的方式,我之前尝试过很多的方法,感觉都太麻烦了,这个方式简单,大家以后爬取都可以按照这种方式进行。

接着就是确定是通过get还是post的方式来提交数据的,我们发现Headers里面显示是Post方式:

涉及到表单的提交,一般都会附带敏感信息,例如cookie,所以这里我们就需要检查一下有没有参数遗漏了:

我们在Headers底下发现有一个Rorm Data里面包含两个参数params和encSecKey,待会我们提交的时候需要带上这两个参数。如果你爬过类似的网站,你就会猜测这个可能就是标识歌曲信息和个人信息的一个加密数据,实际上这个就是那样的。本篇并不打算去介绍如何去破解这个加密算法,我打算可能下一篇来介绍一下这个破解过程。

一般爬取的时候,我们首先会预览一下数据信息,就控制台下面的preview,发现服务器返回的数据格式是json,所以我们等下就需要把数据转换成json格式:

看到没有,这些数据是非常具有规律的,然后就可以开始书写代码了。

通常我们需要在headers里面添加一些host,referer,user-agent等,这是防止被网站识别出爬虫而被限制访问。

二、代码书写

 1import requests
 2import json
 3
 4 # 获取歌曲评论的url
 5url = 'https://music.163.com/weapi/v1/resource/comments/R_SO_4_1320098098?csrf_token=cfb7c24b770cd1cad7f7bf6c9bcb6f29' 
 6
 7 # 因为是post提交,采用MD5或者其他算法加密过,但是我们可以直接使用加密后的数据,用于浏览器识别身份(关于如何破解这个加密数据,下一篇介绍)
 8headers = {
 9'Host': 'music.163.com',
10'Origin': 'https://music.163.com',
11'Referer': 'https://music.163.com/song?id=1320098098',
12'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64)'
13              ' AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'
14}
15
16User_Data = {
17    'params': 'ilXGpo53YAlLd7+0UutKIXmODpUQWhXl1lvPU2a7Y8vOIsFvIr/Q5QYpaSvXRgMU47q5Aa9gJkmY5KM2jS+l5gaIAzf/OmVy6ud71TFl'
18              'fyELQADIGNGSbW8PNXvNyWvPMjEImTtIxrvoOgFlLF429Tbpd/XAAnh6aQu23+hKxThzLBZhO0jdOLLgNAvm87McNgiaVfCQ+1eYws4kn5i+8jR/P/UPt9wdIM8G8qx1xmw=',
19    'encSecKey': '79c3d0f6664de1758c3ae2c3c7c9dabbb61c2a46b79fa0a8d40a842361c6ddd94d2e21594219bf98b9e4ff124fa3f5046b'
20                 '1dfa60f38c35fc5511f1be314ed0bcac69a7867f2870ba01b8af7ee0900a588759b5aad499565aa45e379589a42ba150fa5e'
21                 'df4afb0442f063ab212d9eb9376b4ca99f282d9520653fd808176a5e0f'
22}  
23
24 # 通过post方式来提交数据
25response = requests.post(url, headers=headers, data= User_Data) 
26
27# 转换成json格式便于后面数据的提取
28data = json.loads(response.text)  
29hotcomments = []
30for hotcomment in data['hotComments']:
31    item ={
32        'nickname': hotcomment['user']['nickname'],
33        'content': hotcomment['content'],
34        'likedCount': hotcomment['likedCount']
35    }
36    hotcomments.append(item)
37
38 # 获取评论的用户名称,内容,以及对应的点赞数
39nickname_list = [content['nickname']for content in hotcomments]  
40content_list = [content['content']for content in hotcomments]
41likedCount_list = [content['likedCount']for content in hotcomments]

三、数据可视化

这里我使用了pyecharts这个开源库,它是百度Echarts对Python的实现,挺好用的。使用它需要安装一些依赖包,关于pyecharts的安装我就不介绍了,直接贴上实现数据图表的代码:

1from pyecharts import Bar
2# 图表展示
3bar = Bar('评论中点赞数显示图')
4bar.add('点赞数',nickname_list,likedCount_list, is_stack=True, mark_line=['min', 'max'], mark_point=['average'] )
5bar.render()

代码是不是很少,它会在当前的目录下面生成一个render.html文件,你用浏览器打开就是这样:

接下来便是生成词云了,这里也是贴上实现词云的代码:

1from wordcloud import WordCloud
2import matplotlib.pyplot as plt
3# 词云展示
4content_text = " ".join(content_list)
5wordcloud = WordCloud(font_path=r"F:\字体\21\YGY20070701.ttf",max_words=200).generate(content_text)
6plt.figure()
7plt.imshow(wordcloud,interpolation='bilinear')
8plt.axis('off')
9plt.show()

代码也是比较少的,系统会生成一个图片。如果你使用pycharm这个IDE,你就会看到这样类似的图片:

关于pyecharts和词云的使用,我后面会有相应的文章进行介绍,大家后续关注就可以了。

最后我把点赞前十的评论都给贴出来,大家好好感受一下:

1、阴天雨天晴天,都不如你和我聊天。

2、我高中同学,上课坐在后面喜欢听歌 喜欢戴墨镜在学校里穿梭 喜欢耍酷 走到哪都是一道风景!学校每次演出 他都会参与 每次出场都会响起一阵女生崇拜的尖叫声。毕业后经常会在综艺选秀节目看到他的身影 当时会觉得他可能会成为一个大明星。时至今日 他现在的成就 和他的努力成正比 。

3、有本事你就照顾好自己,不然就老老实实地让我来照顾你一辈子。

4、不是在撩你,是真的想和你在一起。 也不是一点点喜欢你,是好喜欢好喜欢你。

5、我会在每一分钟的60秒每一个小时的60分钟每一天的24小时每一个星期的7天每一个月的31天每一年的365天想你,但是表白找不到人怎么办? 啊哈。

6、我试过一个人回家,我也试过一个人吃饭,一个人低头学习,一个人拿行李箱。可以亲爱的,因为你我认识了更多志同道合又惺惺相惜的人啊,你是我口袋里的男朋友,我多想有一天,自己很努力很优秀,只要静静的看着在台上闪闪发光的你就好了,一路披荆斩棘,也谢谢你这么优秀[爱心],这次换我们来保护你了。

7、今天是分手的第23天,我得心情不是很美妙。我选择忘记,重新开始,你昨晚缺还来找我!大胆!扰乱我的心神! 虽然我是个卖jia表的,但是你不能瞧不起我啊!。

8、阴天雨天晴天,都不如我这里的PT鞋。

9、我是同性恋,我超喜欢我的同桌。虽然大家都不认可,可我始终相信我们一定可以在一起的。郑浩!我爱你!

10、我还喜欢你,并不只是说说而已。希望你以后不要再遇到我这样的人,敏感 总爱瞎想 胆小怕事 懦弱 又不能让你快乐 也不能让你喜欢我 你很累吧 但是又希望你遇到像我这样的人 因为这样的人真的真的好喜欢你啊[哀伤]。

看到这里,我想说你们尽管秀,能伤害到我,就算我输,毕竟单身多年也是凭实力的。。。。。

原文发布于微信公众号 - 啃饼思录(kbthinking)

原文发表时间:2018-11-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

HTML5对APP开发最终用户的三大优势

一、大幅降低使用门槛   为什么流媒体会替代下载视频成为主流?为什么页游会如此火爆?只因用户太“懒”。让用户更方便的满足需求,有时效果好于更多的满足需求。  用...

3776
来自专栏肖洒的博客

叮!你的校招提醒微信机器人已上线!

招聘季即将到来,如何实时的得知招聘信息呢?自然是爬虫+微信了。 这几日在票圈和各微信群看到大家疯狂刷“京东”、“腾讯”等秋招类的“广告”,我对这些营销方式存怀...

3633
来自专栏做全栈攻城狮

小编个人简介

小编现就读于山东师范大学历山学院,大三学生。计算机与科学技术专业。专科毕业于青岛职业技术学院,物联网应用技术专业。

1983
来自专栏ThoughtWorks

再看API设计——从黑客的角度 | TW洞见

今日洞见 文章作者、部分图片来自ThoughtWorks:贺思聪。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体...

3114
来自专栏BIT泽清

苹果审核必看期货App 3.2.1被拒及其他23种原因总结

近年金融行业百花齐放,缺乏监管,正因如此随着政策新规的到来,从17年9月份开始金融类(贷款、理财)上架开始变的异常困难,其中受政策影响的还有彩票类应用; 对于A...

2845
来自专栏编程之旅

iOS漫谈——对于项目架构的思考

又一次的版本更新上架,心情容不得片刻舒缓,新的迭代任务又明白的摆在桌面上。今年上半年自己琢磨完ReactiveCocoa之后,对手上了项目做了MVVM架构的尝试...

1273
来自专栏携程技术中心

干货 | 关于反爬虫,看这一篇就够了

你被爬虫侵扰过么?当你看到“爬虫”两个字的时候,是不是已经有点血脉贲张的感觉了?千万要忍耐,稍稍做点什么,就可以在名义上让他们胜利,实际上让他们受损失。 一、为...

37710
来自专栏小文博客

腾讯云年中大促,低至三折优惠

1K6
来自专栏玉树芝兰

互联网上的时光机器

移动互联网时代,搞社会研究的人总是需要从网络采集各种数据。假设你本周的任务是搜集世界主流媒体对某一主题的报道。你好不容易学习并且掌握了搜索引擎的各种窍门后,辛辛...

731
来自专栏SAP梦心的SAP分享

记一次SAP新业务开发项目

       直到笔者写这篇博文的时候,这个开发项目名义上已经上线,但其实开发以及优化的工作还在继续,数据的修复也仍在继续...

1340

扫码关注云+社区

领取腾讯云代金券