最近做了一个demo,可以根据百度mp3接口获取歌曲的链接。在做的过程中,参考了以下两篇博文,写的很不错。

http://mrasong.com/a/baidu-mp3-api百度mp3接口

http://mrasong.com/a/baidu-mp3-api-full[新]百度mp3接口

下面附上我的demo:

 class Music{//只获取其中一条数据返回//$query指歌曲关键字public function getOneLink($query){$result = $this->getMusicLink($query);if(!empty($result))return $result[0];elsereturn null;}//根据关键字得到所有歌曲列表//返回数组中包括四个字段(歌曲名称、歌手、歌曲id、链接)//$query指歌曲关键字public function getMusicLink($query){//根据url获取跟$query相关歌曲列表$url = "http://tingapi.ting.baidu.com/v1/restserver/ting?from=webapp_music&method=baidu.ting.search.catalogSug&format=json&callback=&query=" . $query;$str = file_get_contents($url);//去掉无用字符串$str= substr($str, 5,-2);//解析为数组$info = json_decode($str,1);$result = array();//遍历列表,同时获取歌曲链接foreach($info['song'] as $item){$song = array();array_push($song, $item["songname"]);//歌曲名称array_push($song, $item["artistname"]);//歌手array_push($song, $item["songid"]);//歌曲id//根据songid得到歌曲链接$url_result = $this->getUrl($item["songid"]);array_push($song, $url_result);array_push($result, $song);}return $result;}//根据歌曲id得到链接public function getUrl($songid){$url = "http://ting.baidu.com/data/music/links?songIds=" . $songid;$str = file_get_contents($url);$info = json_decode($str,1);$result = $info["data"]["songList"][0]["songLink"];//链接参数只要xcode,否则会显示链接错误,无法播放音乐$value = strpos($result, '&');if($value !== false)         $result = substr($result, 0 , $value); return $result;}//直接得到一个歌曲的链接(上面的方法getOneLink是返回数组中一个,增加了查询时间)public function getOne($query){//根据url获取跟$query相关歌曲列表$url = "http://tingapi.ting.baidu.com/v1/restserver/ting?from=webapp_music&method=baidu.ting.search.catalogSug&format=json&callback=&query=" . $query;$str = file_get_contents($url);//去掉无用字符串$str= substr($str, 5,-2);//解析为数组$info = json_decode($str,1);if(!empty($info))  {$item = $info["song"][0];$song = array();array_push($song, $item["songname"]);//歌曲名称array_push($song, $item["artistname"]);//歌手array_push($song, $item["songid"]);//歌曲id//根据songid得到歌曲链接$url_result = $this->getUrl($item["songid"]);//链接参数只要xcode,否则会显示链接错误,无法播放音乐$value = strpos($url_result, '&');if($value !== false)           $url_result = substr($url_result, 0 , $value);         array_push($song, $url_result);     return $song;       }return null;}}

获取网络上歌曲下载链接相关推荐

  1. 获取网页上没有下载链接的视频音频资源 火狐浏览器插件 Video DownloadHelper

    获取网页上没有下载链接的视频音频资源 荔枝上web的音频下载链接没有了,"查看源代码",没有找到蛛丝马迹,它的数据没有以资源的形式放到前台代码中,于是查看浏览器缓存,希望从中发现点 ...

  2. 千方百计获取百度网盘下载链接

    千方百计获取百度网盘下载链接 重要的事情说三遍: 高手勿喷! 高手勿喷! 高手勿喷! 以前看过一篇帖子是在手机上获取百度云的下载链接然后在发送到电脑上, 这样的话百度云后台会判定为两次请求, 请求同一 ...

  3. 如何批量获取网页中的下载链接

    tips:下载 chrome json 正则表达式 如何批量获取网页中的下载链接 前言 打开你要下载的网页 二.获取网页的json数据 1.获取网页的源码 2.选取json 3.获取json字符串 4 ...

  4. php获取网络文件的几种方式,PHP如何实现获取网络上的文件?

    PHP可以获取网络上的文件吗?PHP如何实现获取网络上的文件?请看实例代码: //设置我们将要使用的文件 $srcurl = "http://localhost/index.php" ...

  5. python获取网页图片_Python获取网页上图片下载地址的方法

    本文实例讲述了Python获取网页上图片下载地址的方法.分享给大家供大家参考.具体如下: 这里获取网页上图片的下载地址是正在写的数据采集中的一段,代码如下: #!/user/bin/python3 i ...

  6. python爬虫下载链接_【Python项目】简单爬虫批量获取资源网站的下载链接

    简单爬虫批量获取资源网站的下载链接 1 由来 自己在收集剧集资源的时候,这些网站的下载链接还要手动一个一个复制到百度云离线下载里,稍微懂了一点编程就不想做这种无意义的劳动了.于是就写了一个这样的一个小 ...

  7. python下载电影天堂视频_一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接...

    点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的 ...

  8. 一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接

    [一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天小编以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来 ...

  9. python爬虫教程视频下载-利用Python网络爬虫获取电影天堂视频下载链接【详细教程】...

    相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来. [二.项目准备] ...

最新文章

  1. Net作业调度(一) -Quartz.Net入门
  2. 大数据中台之Kafka,到底好在哪里?
  3. AI战“疫”!人工智能在疫情中的重要作用
  4. JS中的继承与原型链
  5. 这是最新的人工发射wifi信号技术吗?
  6. Fegion-4解决Fegion第一次请求timeout的问题
  7. Unicode和Ascii转byte,Unicode占二个byte,Ascii占一个byte
  8. XML是什么,它能够做什么?——写给XML入门者
  9. Educoder Basemap和Seaborn 第一关:Seaborn
  10. Android Studio中进行单元测试
  11. 【深度学习】卷积神经网络原理
  12. 22HTML5期末大作业:电影网站设计——电影我不是药神响应式页播(4页) HTML+CSS+JavaScript 大学生电影网页作品 影视网页设计作业模板 学生网页制作源代码下载
  13. openwrt刷回原厂固件_小米路由3刷机与刷回
  14. 部分相机和相机镜头的参数
  15. win10安装过程中一直卡在海内存知己天涯若比邻界面解决方法
  16. 购买一台服务器安装 青龙面版 撸京豆 ~超详细~
  17. 中兴ZXV10 H608B无线MODEM开路由自动拨号上网设置
  18. docker方式运行SRS
  19. NDIS Filter Drivers指南
  20. Ubuntu14.04虚拟机下基本操作(typical安装)

热门文章

  1. ubuntu 手册(无命令版本)转自Jandy Zhu (续)
  2. 经典Oracle图书
  3. MPC使用介绍(三)
  4. ServletPath()与ContextPath()的区别
  5. 主流布局--双飞翼布局
  6. 软件测试如何选择第三方软件测评公司
  7. html翻牌动画效果,css实现旋转翻牌动画效果
  8. continue语句
  9. 学会二叉树不知道干啥?二叉树的深度优先搜索和广度优先搜索,我要打十个乃至二十个(打开你的LeetCode撸起来)学练并举
  10. 神经网络中的偏置项b到底是什么?