当前位置:首页 » 技术教程 » PHP接口教程 » 详情

酷狗歌单获取歌曲信息的接口源码

可笑的是一个技术小白离开了百度啥也不会写,全程靠百度。


<?php /**  * @author Youngxj <blog@youngxj.cn>  * @time 2018年6月22日  * @todo 利用酷狗歌单进行获取酷狗歌曲信息  */ // 访问短网址出现的地址 // http://m.kugou.com/share/zlist.html?u=25230245&h1=142560927507380788791872687420293028022&h2=da7ce5776afd5fdba03daa05f4a19860&listid=25&uid=25230245&type=0&_t=1528116907&token=2b631b0f122f5dc5c0ca758374c4d190eb8bde2ea382bf7a29bacfd5bb439489&sign=c0c7fe2caee03445b51bf8961308174b&chl=qq_client // 歌单列表接口 // http://m.kugou.com/zlist/list?listid=25&type=0&uid=25230245&sign=c0c7fe2caee03445b51bf8961308174b&_t=1528116907&pagesize=30&json=&page=1&token=2b631b0f122f5dc5c0ca758374c4d190eb8bde2ea382bf7a29bacfd5bb439489 // 关键值 uid sign  _t  token listid  type // 获取歌曲信息的接口 // http://m.kugou.com/app/i/getSongInfo.php?hash=348CE533CE66E6DCEDA4A9FD63AB6D86&cmd=playInfo&is_share=1 # 设置json格式 header('Content-type: application/json'); #缓存文件名(最好使用json文件格式) $fileName = 'data.json'; # 酷狗歌单分享出来的短网址 $kgUrl = "http://t.kugou.com/1md5hf5t8V2"; file_get_contents($kgUrl); # 获取歌单访问后302跳转的header头信息 $responseInfo = $http_response_header; # 第五条记录为Location跳转地址里面包含多个关键值 $local = $responseInfo['5']; # 下面是蹩脚正则取值 // uid(疑似用户id) $zz_uid = "/uid=(.*?)&/"; preg_match($zz_uid,$local,$uid); // sign $zz_sign = "/sign=(.*?)&/"; preg_match($zz_sign,$local,$sign); // _t $zz_t = "/_t=(.*?)&/"; preg_match($zz_t,$local,$t); // listid(疑似歌单id) $zz_listid = "/listid=(.*?)&/"; preg_match($zz_listid,$local,$listid); // type $zz_type = "/type=(.*?)&/"; preg_match($zz_type,$local,$type); // token $zz_token = "/token=(.*?)&/"; preg_match($zz_token,$local,$token); //echo '<br/>'; # 把取到的值变量定义 $uid = $uid['1']; $sign = $sign['1']; $t = $t['1']; $listid = $listid['1']; $type = $type['1']; $token = $token['1']; # 这里是呼应后面文本缓存的 # 主要是判断文本缓存中的token是否与当前获取的token是否一致 # 如果一致则读取文本缓存的json # 如果不一致则使用后面的获取最新 # 继续写入文本缓存 if(is_file($fileName)){ $dataJson = file_get_contents($fileName); $dataJsons = json_decode($dataJson,1); if($token == $dataJsons['token']){ echo $dataJson; exit(); } } # 这个地址是获取歌单列表里有多少歌 $listUrl = 'http://m.kugou.com/zlist/list?listid='.$listid.'&type='.$type.'&uid='.$uid.'&sign='.$sign.'&_t='.$t.'&pagesize=30&json=&page=1&token='.$token; $list = file_get_contents($listUrl); //var_dump($list); $lists = json_decode($list,1); # 统计歌单歌曲总数 $coun = count($lists["list"]["info"]); $arr = array('token'=>$token); for ($i=0; $i < $coun; $i++) { # 利用前面歌单列表取到的hash # 进行二次临时歌曲地址寻找 $hash = $lists["list"]["info"][$i]['hash']; $getSongInfoUrl = 'http://m.kugou.com/app/i/getSongInfo.php?hash='.$hash.'&cmd=playInfo&is_share=1'; $get = file_get_contents($getSongInfoUrl); $getjson = json_decode($get,1); $arr[$i] = $getjson; } # 到这里已经能正常输出歌单里所有歌曲的信息 echo $data_json = json_encode($arr,JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); # 后面的为文本进行缓存的技术 $myfile = fopen($fileName, "w") or die("无法打开文件,请确定是否有权限编辑文件"); $txt = $data_json; fwrite($myfile, $txt); fclose($myfile); 
如果有什么错误,请指出来,技术小白不易。


本文参考《网页抓包之我的歌单》进行长达一个小时进行编写调试。

原文:https://www.youngxj.cn/507.html

打赏

打赏方式:

X
  • 支付宝
  • 微信
  • QQ红包

打开支付宝扫一扫
日期:2018年06月22日 星期五   分类:PHP接口教程   浏览(153)
本文地址:http://www.laolibab.cn/phpjkjc/270.html   [百度已收录]
短网址: [复制短网址]
声明:本页信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!

留言咨询

自动获取QQ

昵称

邮箱

网址

位置

    h标签演示 站长聚集地站 www.laolibab.cn

个人资料

admin

博主:admin

    简单做好每一刻!
    也许生存在世间的人们都只是在等待一种偶遇,一种适时的相遇,时间对了,你们便会遇上。

站点统计

  • 收录网址:622 个
  • 黑名单:10 个
  • 发布文章:4717 条
  • 总访问量:391341次
  • 本站运行:4年零1天
sitemap1359