include “Snoopy.class.php”;//创建一个文件夹
if(!is_dir(‘Music/’))
{
mkdir(‘Music/’);
}$snoopy = new Snoopy;//获得所有链接
$snoopy->fetchlinks(“http://mp3.baidu.com/m?f=ms&rn=&tn=baidump3&ct=134217728&word=frankie+j&lm=0″);
//print_r($snoopy->results);$result = array();
foreach($snoopy->results as $song)
{
preg_match(“/^(http:////)?([^//]+)/i”,$song,$matches);
$host = $matches[2];preg_match(“/[^/.//]+/.[^/.//]+$/”, $host, $matches);$matches[0] != ‘baidu.com’)
{
$result[] = $song;
}
}//print_r($result);unset($snoopy);//开始下载歌曲
foreach($result as $song)
{
//还得重来一次
$snoopy = new Snoopy;
$snoopy->fetchlinks($song);$arr = split(‘/’,$snoopy->results[0]);$file = fopen($snoopy->results[0],‘r’);
if(!$file)
{
echo ‘不能打开文件’;
exit;
}$count = count($arr);
$file_name = $arr[$count-1];$fh = fopen(‘Music/’.$file_name,‘w’);//保存文件
while (!feof ($file)) {
$content = fgets($file, 4096);
fwrite($fh,$content);
}
fclose($fh);
fclose($file);$file_name.“下载成功
“;
unset($snoopy);
}
?>
//过滤baidu自己的链接 不是baidu链接的存入 result 数组
if(
echo
本文介绍了一个使用 PHP 编写的简单脚本,该脚本可以抓取指定网页上的音乐链接并批量下载这些音乐文件到本地目录。脚本首先检查并创建用于存放音乐文件的文件夹,然后通过 Snoopy 类获取网页上的所有链接,进一步筛选出非百度自身的链接进行下载。
2723

被折叠的 条评论
为什么被折叠?



