1.本教程仅供小我私家学习用,禁止用于任何的商业和犯警用途,如涉及版权问题请联系笔者删除。
2.随笔系作者原创文档,转载请注明文档来源:,感谢
小八这几天正在学习微信小措施的开发,于是想在学的同时能开发出来一个关于音乐的项目,但是问题在于音乐这对象。一方面是数据量太大,第二个方面就是牵扯到很多的版权的问题,所以笔者就想着借助于目前市面上的音乐播放器上的音乐文件,鉴于酷狗音乐上边的歌多而且对照的全面,在此就以酷狗音乐为示例,其它的什么QQ音乐和网易之类的也一样。
建议:用Chrome或者Firefox来进行抓取。
1.打开Chrome地点栏输入酷狗音乐的官网,进入官网后随便搜索一首歌曲,这里以比来对照火的一首歌曲广东恋爱故事为例,搜索后按下键盘的F12或者鼠标右键选择查抄来打开开发者神器,然后点击Network(用来调试浏览器和处事器交互的工具)随后再次刷新搜索功效页面,会发明工具中呈现很多的链接,其链接都是处事器返回给浏览器的数据,如下图。
2.分析:既然是处事器返回给浏览器的数据,此中必有歌曲的相关信息,我们来检察这些链接来看哪个返回了与歌曲相关的数据。当我们检察到一个song_search的链接后发明它callback了一个jQuery的数据东西,我们点击这个song_search这个链接,然后点击Response这个选项卡来看看它返回了 什么数据,如图:它返回了和歌曲相关的信息
点击Headers来来检察它详细的信息。如图:
3.我们发明这个URL很像搜索歌曲的,然后我们复制其到浏览器打开如图:
然后我们多替换keyword为差此外歌曲名称发明它都返回的是歌曲的搜索列表,在此我们已经找到搜索歌曲的链接:?callback=jQuery1124006980366032059648_1518578518932&keyword=这里是歌曲名称&page=1&pagesize=30&userid=-1&clientver=&platform=WebFilter&tag=em&filter=2&iscorrection=1&privilege_filter=0&_=1518578518934
4.我们来继续播放歌曲,就拿搜索功效的第一个歌来看,,地点栏中一个hash就打开了歌曲的所有信息,所以在这我们分析到只要拿到这个hash值就拿到了歌曲的所有播放信息
5.分析适才搜索返回的数据,我们删除搜索返回数据的最外边的小括号后它其实就是一个json数据,我们来格局化这个json数据,如下:
{
"status": 1,
"error_code": 0,
"data": {
"page": 1,
"tab": "全部",
"lists": [{
"SongName": "<em>广东恋爱故事<\/em>",
"OwnerCount": 628451,
"MvType": 2,
"TopicRemark": "",
"SQFailProcess": 0,
"Source": "",
"Bitrate": 128,
"HQExtName": "mp3",
"SQFileSize": 0,
"ResFileSize": 0,
"Duration": 214,
"MvTrac": 3,
"SQDuration": 0,
"ExtName": "mp3",
"Auxiliary": "",
"SongLabel": "",
"Scid": 29199917,
"OriSongName": "<em>广东恋爱故事<\/em>",
"FailProcess": 0,
"SQBitrate": 0,
"HQBitrate": 320,
"Audioid": 29199917,
"HiFiQuality": 1,
"Grp": {},
"OriOtherName": "",
"AlbumPrivilege": 0,
"TopicUrl": "",
"SuperFileHash": "",
"ASQPrivilege": 0,
"M4aSize": 878148,
"AlbumName": "广东恋爱故事",
"IsOriginal": 1,
"Privilege": 0,
"ResBitrate": 0,
"HQFailProcess": 0,
"SQPayType": 0,
"HQPrice": 0,
"Type": "audio",
"SourceID": 0,
"Publish": 1,
"ID": "89975939",
"SuperFileSize": 0,
"QualityLevel": 2,
"SQFileHash": "00000000000000000000000000000000",
"A320Privilege": 0,
"HQPrivilege": 0,
"SuperBitrate": 0,
"SuperDuration": 0,
"AlbumID": "4162049",
"ResFileHash": "",
"FileSize": 3429399,
"MixSongID": "89975939",
"HQFileHash": "0127995D50833821451408D8A7F90E15",
"SuperExtName": "",
"FileHash": "2A25AAFF4B6C84B859B4D77F944DE57A",
"AudioCdn": 100,
"OtherName": "",
"SQPkgPrice": 0,
"PkgPrice": 0,
"HQFileSize": 8658421,
"mvTotal": 4,
"OldCpy": 1,
"HQPayType": 0,
"SQPrice": 0,
"ResDuration": 0,
"PublishAge": 255,
"Price": 0,
"HQPkgPrice": 0,
"SingerName": "广东雨神",
"SQExtName": "",
"MvHash": "421FD51941758456539B5C1EA10A7E2E",
"SQPrivilege": 0,
"HQDuration": 214,
"PayType": 0,
"HasAlbum": 1,
"Accompany": 1,
"FileName": "广东雨神 - <em>广东恋爱故事<\/em>"
},
我们在里边找到了歌曲的FileHash和播放页面的hash值是一样的,在这我们就会拿到歌曲的hash值。
6.用同样的要领在Network中分析播放页面,会发明一个index的链接按照歌曲的hash值返回了歌曲的所有信息,如图:
我们点击Header来检察具体的URL,如图:
我们复制URL在浏览器地点栏打开,如图
发明其返回的就是一个json数据,格局化儿女码如下: