目标:爬取网易云音乐热歌榜中全部歌曲(共200首)的热门评论(每首歌有15个热门评论)
分析:
需要分两步走,第一步是定位到热歌榜单所在的资源,从而得到这热歌榜中到底有哪些歌并获得每首歌的id;第二步是根据上一步得到的每首歌的id,定位到单独每首歌所在的资源,从而得到每首歌下的评论信息。具体讲:
1)首先我们需要得到热歌榜数据所在的url,经浏览器开发者工具查看网页代码,得知热歌榜的数据所在的请求url是:
http://music.163.com/discover/toplist?id=3778678
这个url的请求方式是get方式,返回的是html的doc文档,这个文档中的第610行就包含了每首歌的歌名,id,以及对应的播放资源链接。
所以我们的第一个任务就是把该html文档爬取下来,提取出所有歌曲的名称及id。有了歌曲id之后,我们可以进一步通过这个id访问到每一首歌的具体信息。
2)在网页上点进某一首歌的链接,分析弹出的每首歌单独的新页面的Network情况,我们可以分析出包含该首歌歌评的请求url为:
http://music.163.com/weapi/v1/resource/comments/R_SO_4_489998494?csrf_token=,
请求方式是post(因为评论需要往服务端发送数据),返回的是json文件,在该json文件中就包含了我们需要的热门评论。在这里唯一有点棘手的地方是发送post请求时需要两个参数,而不同的歌这两个参数是不同的(然而程序中用的参数是相同的),关于这两个参数如何定,具体介绍在下面的链接中。
所