点击上方 "程序员小乐"关注, 星标或置顶一起成长
第一时间与你相约
每日英文
All problems, and ultimately is a matter of time. All the worry, in fact is a bother.
一切问题,最终都是时间问题。一切烦恼,其实都是自寻烦恼。
每日掏心话
人生一定要冲动一次,要么为了一个人,要么为了爱情,要么为了旅行,或者是为了梦想。
来自:后山悟道人 | 责编:乐乐
链接:my.oschina.net/gllfeixiang/blog/2995570
程序员小乐(ID:study_tech)第 724 次推文 图片来自网络
往日回顾:广告太多超烦人?让你和烦人的弹窗广告说拜拜!
正文
下文方法及代码仅供学习使用,不做他用。示例用到了一些库,包括:jsoup、HttpClient、net.sf.json大家可以自行去下载jar包。
1.分析是否能获得TOP500歌单
首先,打开酷狗首页查看酷狗TOP500,说好的500首,怎么就只有22首呢?
是真的只让看这些还是能找到其余的呢,于是我就看了下这TOP500的链接
https://www.kugou.com/yy/rank/home/1-8888.html?from=rank
可以看的出home后边有个1,难道这是代表第一页的意思?于是我就把1改成2,进入,果然进入了第二页, 至此可以知道我们可以在网页里获取这500首的歌单。
2.分析找到真正的mp3下载地址(这个有点绕)
点一个歌曲进入播放页面,使用谷歌浏览器的控制台的Elements,搜一下mp3,很轻松就定位到了MP3的位置
但是使用java访问的时候爬取的html里却没有该mp3的文件地址,那么这肯定是在该页面的位置使用了js来加载mp3,那么刷新下网页,看网页加载了哪些东西,加载的东西有点多,着重看一下js、php的请求,主要是看里面有没有mp3的地址,分析细节就不用说了
最终我在列表的
https://wwwapi.kugou.com/yy/index.php?r=play/getdata&callback=jQuery191027067069941080546_1546235744250&hash=667939C6E784265D541DEEE65AE4F2F8&album_id=0&_=1546235744251
这个请求里发现了mp3的完整地址,
"play_url": "http://fs.w.kugou.com/201812311325/dcf5b6449160903c6ee48035e11434bb/G128/M08/02/09/IIcBAFrZqf2ANOadADn94ubOmaU995.mp3