网页抓包下载歌曲
网页抓包获取歌曲播放下载地址
一、歌曲抓取
以酷我音乐为例www.kuwo.cn
大致原理
1、显而易见,点击每一首个进入播放界面可以看到网址栏有一个对应的链接,并且每首歌就只有后面这一串数字不一样,相当于歌曲的一个标号,叫做rid。

2、每首歌点击播放的时候,音乐就在后台响起了,这说明你在进入这个页面,浏览器进行数据加载的时候,以及把这首歌的实际地址,也就是.mp3后缀的这个地址拿到了
3、中间的这个过程是最令人着迷的,这中间究竟经历了什么?大致弄清楚,问题就解决了。
开始探索
1、找一首不需要付费的歌曲,点击进入播放页面
2、浏览器打开网页按下F12,点击Network,这里可以看到整个网页在进行数据加载的时候发送了哪些请求,接收了哪些东西

3、刷新页面 (重新获取.mp3后缀的链接,加载传输的请求和数据包)
可以看到有一些图片,一些js脚本

4、大致分析数据包

这里有几个圈
Headers 请求头信息,其中有请求的时候发送了哪些东西给服务器,以及服务器响应网页的头部信息(Response Headers) ,响应的头部信息其中的一些部分会被用作下一步请求链接的组建,意思就是从歌曲页面链接到获取实际播放地址,中间可能经过几次的中转。
Preview 就是预览效果,这个点击不同的数据包看一看就可以了
Response 就是响应的数据包内容,有些是HTML页面数据,有些是js数据
5、点击Preview,一个一个查看数据包,js、png就可以跳过

!! 这里我们看到了歌词,假如这是我想要获取、下载的。就点击Preview 左边的Headers

直接浏览器打开这个链接就可以得到了,自己试一试,重点马上就来了
6、获取实际地址

查看到这个数据包的时候,看到一个.mp3后缀的,赶紧试一下!! 没必要,我试过的,必然没错,哈哈哈哈,开个玩笑

成功了!可以播放,可以下载
7、获取接口
那么问题来了,这种方式去获取所有(fu fei)歌曲,是获取不到的,或者说获取得到歌曲不符合,怎么办??? 找到接口,也就是通过这个,加上一个rid,就可以解决
没错,点击左边的Headers


只要修改rid 就可以获取所有歌曲,perfect
获取该数据包的请求链接Request URL,通过JAVA爬虫即可获取歌曲名等信息,可参考另一篇博客
原文链接:https://blog.csdn.net/Kevin1906/article/details/102834658

浙公网安备 33010602011771号