背景
我很喜欢豆瓣FM的风格,然而它无法满足我日常的需求,手机上用网易云音乐,家里海信电视用QQ音乐、天猫放糖好像是虾米。好累啊,舍不得豆瓣的歌,想把我收藏的“红心歌曲”
清单都下载下来。
步骤一
模拟登陆豆瓣,使用Fiddler拦截http协议,查看登录请求。
步骤二
分析http请求,想要获取“红心歌曲”需要三次http请求:
第一次:登录获取用户标识cookie
第二次:使用cookie获取红心歌单主键—sid
第三次:根据多个sid获取歌曲的信息(包括歌名、歌手、专辑图片、甚至是播放地址[好惊喜Orz])
http请求分析的方法,简单如下:
1、你得了解一下http协议,知道它的请求包括头部headers、内容body
2、请求头中比较重要的两个是
- content-type,有时候你的body是需要urlencode的;
- referrer,有的网站服务器是需要验证这个的,不然不给过。
3、响应消息,一般只关注body,需要先把字节码转换成字符串,一般都是json格式。
其他
java、maven、springBoot版本地址:
https://github.com/haerxiong/douban_fm (包涵了简单的播放功能、下载歌单)
nodejs版本:
https://github.com/haerxiong/nodejs/tree/master/httpget/douban (仅下载歌单)
原文地址:https://blog.csdn.net/haerxiong/article/details/84833651