本文所涉及所有资源均在 传知代码平台可获取。
目录
概述
演示效果
视频演示
图片展示
核心逻辑
获取歌曲图片
提取搜索结果
使用方式
部署方式
Docker部署1
构建镜像
Web站点部署2
附件下载
概述
CloudMusic是一款全网歌曲免费听的web项目,无需任何数据库,资源不存留在本地,原接口是爬取某XX宝,本项目整合接口实现基本使用,后续可自行对接收藏、登陆以及整改UI
演示效果
视频演示
见视频演示
图片展示
搜索歌曲展示

核心逻辑
获取歌曲图片
libxml_use_internal_errors(true); // Suppress HTML5 parsing errors$dom = new DOMDocument();
$dom->loadHTML($response);$xpath = new DOMXPath($dom);
$meta = $xpath->query('//meta[@property="og:image"]');if ($meta->length > 0) {
    $content = $meta->item(0)->getAttribute('content');
    die(
        json_encode(
            array(
            'code' => 200,
            'data' => $content,
            'msg' => '获取成功'
        ))
);
} else {
    die(
        json_encode(
            array(
            'code' => 100,
            'data' => '',
            'msg' => '获取失败'
        ))
);
}
   提取搜索结果
// 提取搜索结果
$results = [];
$search_results = $xpath->query("//div[contains(@class, 'card-text')]//div[contains(@class, 'row')]");
foreach ($search_results as $result) {
    $song_name_node = $xpath->query(".//div[contains(@class, 'col-5')]/a", $result)->item(0);
    $artist_node = $xpath->query(".//div[contains(@class, 'col-4')]", $result)->item(0);
    $action_node = $xpath->query(".//div[contains(@class, 'col-3')]/a", $result)->item(0);    if ($song_name_node && $artist_node && $action_node) {
        $song_info = [
            "song_name" => trim($song_name_node->textContent),
            "artist" => trim($artist_node->textContent),
            "action" => trim($action_node->textContent),
            "link" => $song_name_node->getAttribute('href'),
            "id" => basename($song_name_node->getAttribute('href'))
        ];
        $results[] = $song_info;
    }
}// 提取最新搜索
$latest_search_results = [];
$latest_searches = $xpath->query("//div[contains(@class, 'card shadow-sm')]//p[contains(@class, 'card-text')]/a");
foreach ($latest_searches as $search) {
    $search_info = [
        "search" => trim($search->textContent),
        "link" => $search->getAttribute('href')
    ];
    $latest_search_results[] = $search_info;
}// 构建返回数据结构
$api_response = [
    "search_results" => $results,
    "latest_searches" => $latest_search_results
];// 输出为JSON格式
header('Content-Type: application/json');
echo json_encode($api_response, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
   使用方式

部署成功后,打开web站点,搜索歌曲即可加入列表,自动循环列表播放歌曲
部署方式
Docker部署1
构建镜像
将压缩包中的Docker部署文件夹里面的文件全部上传到服务器上,选择构建镜像

镜像构建成功后,创建容器即可访问(可以更改api接口,项目的static中的js 搜索http://即可替换)

Web站点部署2
上传Web站点部署文件夹里面的压缩包到服务器进行解压,环境PHP5.6+,推荐7.0

访问站点即可
附件下载

下载地址见页面附件
感觉不错,点击我,立即使用
