如何用Python抓取网易云音乐的热门评论
序
最近一直在研究文本挖掘相关的内容。所谓巧妇难为无米之炊。要想分析文本,首先要获取文本。获取文本的方式有很多,比如从网上下载现成的文本文档,或者通过第三方提供的API获取数据。但是有时候我们想要的数据是无法直接获取的,因为没有直接的下载渠道或者API让我们获取数据。那么这个时候我们该怎么办呢?通过网络爬虫获取想要的数据还有一个更好的方法,就是编写计算机程序来伪装成用户。随着计算机的高效率,我们可以方便快捷地获得数据。
关于爬行动物
那么怎么写爬虫呢?可以写爬虫的语言有很多,比如Java,php,python等。个人比较喜欢python。因为python不仅有强大的内置网络库,还有很多优秀的第三方库,别人直接做了轮子,我们拿着用就行了,这给写爬虫带来了很大的便利。毫不夸张地说,你实际上可以用不到10行python代码编写一个小爬虫,而用其他语言可以编写很多代码。简单易懂是python的巨大优势。
好了,事不宜迟,我们今天就进入正题。近年来,网易云音乐开始流行。我自己就是网易云音乐的用户,用了好几年了。以前用QQ音乐和酷狗。以我自己的亲身经历,我认为网易云音乐最大的特点就是精准的歌曲推荐和独特的用户评论(郑重声明!!!这不是软文,不是广告!!!仅代表个人观点,不喜勿喷!)。经常会有一些神评论在一首歌下面被赞很多。另外,网易云音乐前几天把精选用户评论搬到了地铁上,网易云音乐的评论又火了。所以想分析一下网易云的评论,找出规律,特别是分析一下一些热评有什么共同点。抱着这个目标,我开始从网易云抓取评论。
网络图书馆
Python有两个内置的网络库,urllib和urllib2,但是这两个库用起来都不是特别方便,所以这里我们用一个广受好评的第三方库,requests。使用请求,你只需要几行代码就可以设置代理、模拟登录和其他复杂的爬虫工作。如果已经安装了pip,您可以使用pip安装请求直接安装。
中文文档的地址是here =(organic)| ut mcmd = organic;playerid = 81568911;_ _ utmb = 94650624 . 23 . 10.1490672820 ",
连接':“保持活动”,
引用者“:/”}
#设置代理服务器
代理= {
元素(url):
hot_comments_list = []
Hot_comments_list.append(u“用户ID用户昵称用户头像地址评论时间喜欢总评论内容”)
Params = get_params(1) #第1页
encSecKey = get_encSecKey()
json_text = get_json(url,params,encSecKey)
json_dict = json.loads(json_text)
Hot _ comments = JSON _ dict ['热门评论'] #热门评论
Print("有%d条热门评论!"% len(热门评论))
对于热门评论中的项目:
Comment = item['content'] #评论内容
LikedCount = item['likedCount'] #总喜欢数
Comment_time = item['time'] #注释时间(时间戳)
UserID = item['用户']['用户ID'] #评论者ID
昵称=项目['用户'] ['昵称'] #昵称
《阿凡达》网址=项目['用户'] ['头像网址'] #头像地址
comment_info = userID + " " +昵称+" "+avatar URL+" "+comment _ time+" "+liked count+" "+comment+u " "
hot _ comments _ list . append(comment _ info)
返回热门评论列表
#捕捉对一首歌曲的所有评论
定义获取所有评论(url):
All_comments_list = [] #存储所有评论。
All_comments_list.append(u "用户ID用户昵称用户头像地址评论时间喜欢总评论内容)#头信息
params = get_params(1)
encSecKey = get_encSecKey()
json_text = get_json(url,params,encSecKey)
json_dict = json.loads(json_text)
comments _ num = int(JSON _ dict[' total '])
if(comments_num % 20 == 0):