大家好,我是chilly,下面给大家分享本人爬取酷狗音乐top100的音频的案例
好,一起来看看需求
我们想要爬取top100的歌曲信息以及歌曲所在的url。
那么确定好需求后,我们就准备开始我们的步伐。在如上的页面F12,是没有我们所想要的MP3源地址的,所以我们点开任一首歌。打开F12开发者工具,页面如下
可以看到,歌曲是经过 Ajax 异步加载获取的,而请求参数是加密的,其中的id在前一个页面可以获取,并且这里可以不提供第二个参数也可以获取该响应,主要的hash后的参数。在看了大神们的解码分析后,望而却步,但奇迹般发现
当前页面的url是含有hash参数的,当即想到用 selenium+pantomJs 路线来获取当前页面url,用当前页面的url中的hash参数,来构造请求,获取我们想要的json数据,该数据中包含我们需要的歌曲的具体信息
给大家看看selenium部分的代码
依次点击每首歌曲,然后获取url,返回前一个页面,继续进入下一个歌曲的界面,获取url,最后将结果保存在文件中。
文件内容如下
到了这里我们已经成功一大半了,因为我们已经拿到了每首歌曲对应的hash参数,我们只需要对这个参数简单的构造
然后对这些url,向酷狗服务器发起访问请求,酷狗将数据都发送给了我们,经过json解析后,我们将结构化的数据保存在kugou.txt中
当然,大家可以存储数据库,excel。
总结: 整个过程,熟悉了 selenium + pantomJs 的使用 ,整个案例中,最重要的是,如何获取url,能够让酷狗服务器乖乖地将包含歌曲信息的 json 数据,回传给我们,而这篇教程,就是采用 selenium来获取hash参数,当然大家也可以进行解密。大家可以自行尝试,这里给大家推荐 大神详解网易音频爬虫加密参数的破解 打开链接
感谢大家。