php获取百度MP3(baidu mp3)下载列表

百度mp3在近几年已经不给出下载地点,所以想用php获取已经不能直接获取下载地点,想要收罗MP3的下载地点可以在baidu mp3在线播放器的歌曲url做收罗。百度也做了相应的防盗链处理惩罚,不能直接盗链在线播放,只能下载。

不多说,上代码。

php源码说明: 通过输入歌曲 获得百度mp3 第一页的歌曲名、歌手和歌曲url。文件编码请利用gb2312

<?php /* php获取百度MP3 by enenba 2012-6-27 $param str 歌曲名 $return array $result $result['songurl'] =>歌曲url $result['singer'] =>歌手 $result['songname']=>歌曲名 */ function get_baidu_mp3($songname) { $songname = urlencode($songname); $url = 'http://mp3.baidu.com/m?word='.$songname; $httptype = function_exists('curl_init'); //利用curl 照旧 file_get_contents if (!$httptype) { $html = file_get_contents($url); }else{ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 1); // 返回功效,而不是输出它 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $html = curl_exec($ch); $info = curl_getinfo($ch); if ($html === false) { echo "cURL Error: " . curl_error($ch); } } $search = '#\.baidu\.com/d\?song=[^"]*#i'; preg_match_all($search,$html,$r1); set_time_limit(30); foreach ($r1[0] as $v){ if (!$httptype) { $html = file_get_contents($v); }else{ curl_setopt($ch, CURLOPT_URL, $v); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $html_1 = curl_exec($ch); $info = curl_getinfo($ch); if ($html === false) { echo "cURL Error: " . curl_error($ch); } } $search = '#href="/j\?j=2&url=([^"]*)#i'; preg_match($search,$html_1,$r2); $result['songurl'][] = $r2[1]; $search = '#歌手:<a href=[^>]*>([^<]*)</a>#'; preg_match($search,$html_1,$r3); $result['singer'][] = $r3[1]; $search = '#<title>下载歌曲:([^<]*)<\/title>#'; preg_match($search,$html_1,$r4); $result['songname'][] = $r4[1]; //echo $r2[1].'<br />'; } if ($httptype) {curl_close($ch);} return $result; } //以下为测试内容 $songname = '伤不起'; $r = get_baidu_mp3($songname); echo '输出的毗连为: (右键另存下载歌曲)<br /><br />'; echo '<ol>'; $count = count($r["songname"]); for($n=0;$n<$count;$n++) { $r['songurl'][$n] = urldecode($r['songurl'][$n]); echo '<li>歌曲名:'.$r["songname"][$n].' - 歌手:'.$r["singer"][$n].'<br />'; echo '<a href="'.$r["songurl"][$n].'" target="_blank">'.$r["songurl"][$n].'</a>'."<br /><br /></li>\n"; } echo '</ol>'; ?>

上结果图:

php获取百度mp3

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7840.html