幸运飞艇爱彩国际娱乐平台欢迎您!
幸运飞艇,幸运飞艇平台,幸运飞艇计划,幸运飞艇官网【官方授权】
客服热线
python爬虫入门 实战(三)---爬网易云音乐热门评

python爬虫入门 实战(三)---爬网易云音乐热门评

作者:-1    来源:未知    发布时间:2018-05-16 23:12    浏览量:

  (注:本篇爬取不直接解析html文本,而是直接分析获取评论的api,从而获得相应的json返回。然后,解析json获取所需信息。)

  我们在搜索框里输入comments即可找到对应的获取评论的api的url,点击它在右边选择Response就可以看到返回的json了。

  那我们的思路就很清晰了,只需要分析这个api并模拟发送请求,获取json进行解析就好了。右键复制这个url下来:

  经测试,后面的csrf_tocken也可以用于其他歌曲。在开发者控制台里,点击headers就可以看到请求方式为post,请求头里的表单数据有两个加过密的参数(params和encSecKey)。但是不要紧,同样经测试,这两个参数也可以用于其他歌曲,直接copy就好。但只限于第一页,其他页码就不一样了,不过对于我们爬取热门评论,第一页就够了。

  运行查看输出就可以知道是否成功获取了json。这里requests的用法,可以参考requests快速上手。

  我们可以从浏览器的开发者控制台里把json复制到一个 在线json校验格式化工具,这样可以比较清晰地看到json的结构,利于我们解析。如图:

  这个json里有丰富的信息,包括评论总数、用户名、热评、点赞数等。清楚了json 的结构,很容易就可以解析得到想要的信息了。json解析需要引入json包,了解json解析可以参考 使用python解析json详解。里面把json类型和python类型之间的对应关系讲得很清楚了,只需要会用dict和list。解析代码如下:

  以上已经展示了怎么爬取一首歌的热门评论,接下来我们就可以进一步把一个歌单里所有歌的热门评论都爬取出来。

  可以看到第一行的标签textarea里有一个json,我们可以用xpath定位到这个标签,获取到这个json并进行解析。在此之前,可以向之前一样先复制到在线校验工具看看结构。

  (注:这里遇到一个神坑,由于param太长,我用了几个\符号在末尾进行换行,如上代码那样换了两行没有问题,可是只要我在encSecKey参数这一行进行换行,就会产生bug,死活获取不到json文本。经过多次测试,确实就是\符号导致param没能正确地传入post导致获取不到json文本。目前不清楚什么原因,所以,这个换行还是慎用。)

友情链接:

在线客服 :     服务热线:     电子邮箱:

公司地址:

幸运飞艇爱彩国际娱乐平台主营产品:程控电话、监控远程控制、WIFI网络覆盖、电子门锁、发电机、太阳能利用、小区门禁、电动道闸、电动大门、电动窗帘、智能家居、保安智能巡检、电梯3-5方对讲、有线卫星电视机房系统、红...

 备案号:粤ICP证034994-2号 网站地图