PHP的,ASP的不想弄。。。拿去就能用。。。演示:http://www.92798.net/rank/mp3.php
只偷了一层,下面的详细列表页面内容没弄,有兴趣的自己加吧,看懂下面的代码,就很容易可以扩展开来了,其实最关键的就是一个正则表达式,就像我们做采集程序一样,关键的关键就是正则。。。不介意的话,给偶加个反向链接吧,如果需要详细代码的请与我联系:QQ:13501615

@set_time_limit(0);
@error_reporting(1);
$cache_dir = 'cache/';//缓存目录
$cache_expireTime = 21600;//缓存刷新时间
function get_sub_content($str, $start, $end){
    if ($start == '' || $end == ''){
           return;
    }
    $str = explode($start, $str);
    $str = explode($end, $str[1]);
    return $str[0]; 
}
function makefolder($c_dirname) {
    if(!@is_dir($c_dirname)){
        if(!@mkdir($c_dirname,0777)){
            return false;
        }
    }
}
function setcache($c_folder,$c_filename,$c_content) {
    if(!@is_dir($c_folder)){
        if(!@mkdir($c_folder,0777))
        {
            echo '<div>无法创建目录</div>';
        }
    }
    else {
        $fp = fopen($c_folder.$c_filename,"w");
        fputs($fp, $c_content); 
        fclose($fp);
    }
}
function readcache($c_dir,$c_file) {
    $fso = fopen($c_dir.$c_file,'r');
    $content = fread($fso, filesize($c_dir.$c_file));
    fclose($fso);
    if(empty($content)) {
        $content = '<div>没有记录</div>';
    }
    return $content;
}

//以上不需要修改
function BaiduMP3_Category(){
    $str = '
        <li><a href="mp3.php?id=newhits">新歌TOP100</a>
        <li><a href="mp3.php?id=mp3topsong">歌曲TOP500</a>
        <li><a href="mp3.php?id=top200singer">歌手TOP200</a>
        <li><a href="mp3.php?id=movie">电影金曲</a>
        <li><a href="mp3.php?id=tvs">电视金曲</a>
        <li><a href="mp3.php?id=oldsong">经典老歌</a>
        <li><a href="mp3.php?id=duichang">热门对唱</a>
        <li><a href="mp3.php?id=dj">热舞DJ</a>
        <li><a href="mp3.php?id=flash">热门FLASH</a>
        <li><a href="mp3.php?id=mingge">民歌精选</a>
        <li><a href="mp3.php?id=xiaoyuan">校园歌曲</a>
        <li><a href="mp3.php?id=junge">军旅歌曲</a>
        <li><a href="mp3.php?id=xiangsheng">相声小品荟萃</a>
        <li><a href="mp3.php?id=quyi">曲艺集锦</a>
        <li><a href="mp3.php?id=qingyinyue">轻音乐</a>
        <li><a href="mp3.php?id=minyue">中国民乐</a>
        <li><a href="mp3.php?id=shaoergequ">少儿歌曲</a>
        <li><a href="mp3.php?id=yaogun">摇滚歌曲榜</a>
        <li><a href="mp3.php?id=liujinsuiyue">流金岁月</a>
        <li><a href="band.php">乐队组合榜</a>
        <li><a href="singerlist.php">歌手列表</a>
        <li><a href="songlist.php">歌曲列表</a>
    ';
    echo $str;
}
$id = $_GET['id'];
switch($id){
    case 'newhits':$url = 'http://list.mp3.baidu.com/list/newhits.html';$title = '新歌TOP100';break;
    case 'mp3topsong':$url = 'http://list.mp3.baidu.com/topso/mp3topsong.html';$title = '歌曲TOP500';break;
    case 'top200singer':$url = 'http://list.mp3.baidu.com/list/top200.htm';$title = '歌手TOP200';break;
    case 'tvs':$url = 'http://list.mp3.baidu.com/list/tvs.html';$title = '电视金曲';break;
    case 'movie':$url = 'http://list.mp3.baidu.com/list/movies.html';$title = '电影金曲';break;
    case 'oldsong':$url = 'http://list.mp3.baidu.com/list/oldsong.html';$title = '经典老歌';break;
    case 'duichang':$url = 'http://list.mp3.baidu.com/list/duichang.html';$title = '热门对唱';break;
    case 'dj':$url = 'http://list.mp3.baidu.com/list/dj.html';$title = '热舞DJ';break;
    case 'flash':$url = 'http://list.mp3.baidu.com/list/flash.html';$title = '热门FLASH';break;
    case 'mingge':$url = 'http://list.mp3.baidu.com/minge/mp3topsong.html';$title = '民歌精选';break;
    case 'xiaoyuan':$url = 'http://list.mp3.baidu.com/xiaoyuan/mp3topsong.html';$title = '校园歌曲';break;
    case 'junge':$url = 'http://list.mp3.baidu.com/list/junge.html';$title = '军旅歌曲';break;
    case 'xiangsheng':$url = 'http://list.mp3.baidu.com/list/xiangsheng.html';$title = '相声小品荟萃';break;
    case 'quyi':$url = 'http://list.mp3.baidu.com/list/quyi.html';$title = '曲艺集锦';break;
    case 'qingyinyue':$url = 'http://list.mp3.baidu.com/list/qingyinyue.html';$title = '轻音乐';break;
    case 'minyue':$url = 'http://list.mp3.baidu.com/list/minyue.html';$title = '中国民乐';break;
    case 'shaoergequ':$url = 'http://list.mp3.baidu.com/list/shaoergequ.html';$title = '少儿歌曲';break;
    case 'yaogun':$url = 'http://list.mp3.baidu.com/list/yaogun.html';$title = '摇滚歌曲榜';break;
    case 'liujinsuiyue':$url = 'http://list.mp3.baidu.com/list/liujinsuiyue.html';$title = '流金岁月';break;
    //case 'yuedui':$url = 'http://list.mp3.baidu.com/list/yuedui.html';$title = '乐队组合榜';break;
    //case 'singerlist':$url = 'http://list.mp3.baidu.com/singer/singers.html';$title = '歌手列表';break;
    //case 'songlist':$url = 'http://list.mp3.baidu.com/song/A.htm';$title = '歌曲列表';break;
    default:$url = 'http://list.mp3.baidu.com/list/newhits.html?top1';$title = '新歌TOP100';break;
}
$cache_file = 'mp3_'.$id.'.php';
//echo $url;
if(file_exists($cache_dir.$cache_file)){
    $LastUpdateTime = filemtime($cache_dir.$cache_file);
    $LastUpdateTime = ''.date('Y-m-d H:i:s',$LastUpdateTime);
}
else {
    $LastUpdateTime = date('Y-m-d H:i:s');
}
$LastUpdateTime = '&nbsp;&nbsp;<span style="color:#666;font-weight:normal;font-size:12px;">(最后一次更新:'.$LastUpdateTime.')</span>';
if(file_exists($cache_dir.$cache_file) && filemtime($cache_dir.$cache_file) > (time() - $cache_expireTime)) {
    $pagecontent = readcache($cache_dir,$cache_file);
}
else {
    $pagecontent = file_get_contents($url);
    if($id == 'qingyinyue'){
        $pagecontent = get_sub_content($pagecontent,'<table width="100%" align="center" cellpadding="0" cellspacing="0" class="list">','返回页首');
    }
    else {
        $pagecontent = get_sub_content($pagecontent,'<table width="100%" align="center" cellpadding="0" cellspacing="0"','返回页首');
    }
    setcache($cache_dir,$cache_file,$pagecontent);
}
//echo $pagecontent;
?>
<div id="BodyGlobal">
    <div id="Header">
    <a href="./">
        <h1>MP3音乐搜索</h1>
    </a>
    </div>
    <div id="Main_Body">
        <div id="Body_Left">
            <div id="left_body">
                <?BaiduMP3_Category();?>
            </div>
        </div>
        <div id="Body_Right">
        <div id="HeaderTitle"><span class="ff"><?=$title?></span><span class="fr"><?=$LastUpdateTime?></span></div>
            <?
            if($id == 'dj' || $id == 'qingyinyue'){
                preg_match_all('/<a href="(.*?)"(.*?)>(.*?)</a>/i',$pagecontent,$a);//取歌曲名称
            }
            else {
                preg_match_all('/class="border"><a href="(.*?)"(.*?)>(.*?)</a>/i',$pagecontent,$a);//取歌曲名称
            }
            preg_match_all('/((.*?))/i',$pagecontent,$b);//取歌曲演唱者
            echo '
                <table width="100%">
                <tr>
            
            ';
            $j = 1;
            for($i=0;$i<count($a[3]) ;$i++ ){
                $signer =  '';
                if(!empty($b[1][$i])){
                    $signer = '&nbsp;&nbsp;('.$b[1][$i].')';
                }
                $songname = trim($a[3][$i]);
                if(!empty($songname)){
                    echo '
                            <td align="left" width="33%">'.($i+1).'&nbsp;&nbsp;<a href="'.eregi_replace('tn=baidump3','tn=goaler',$a[1][$i]).'" target="_blank">'.$a[3][$i].'</a>'.eregi_replace('tn=baidump3','tn=goaler',$signer).'</td>
                    ';
                    if($j % 3 == 0){
                        echo '</tr><tr>';
                    }
                }
                $j++;
            }
            echo '
                </table>
            ';
            ?>
        </div>
    </div>
    
</div>