CloudMusic:免费听歌

news2024/9/27 5:42:22

本文所涉及所有资源均在   传知代码平台可获取。

目录

概述

演示效果

视频演示

图片展示

核心逻辑

获取歌曲图片

提取搜索结果

使用方式

部署方式

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

访问站点即可

附件下载

下载地址见页面附件

感觉不错,点击我,立即使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2169052.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何隐藏Windows10「安全删除硬件」里的USB无线网卡

本方法参照了原文《如何隐藏Windows10「安全删除硬件」里的USB无线网卡》里面的方法,但是文章中的描述我的实际情况不太一样,于是我针对自己的实际情况进行了调整,经过测试可以成功隐藏Windows10「安全删除硬件」里的USB无线网卡。 先说一下…

QT学习笔记之文件操作

你千万不要跟任何人谈起任何事。你只要一谈起&#xff0c;就会想念起每一个人来。 在ui界面添加一个LineEdit(lEt)、QPushButton(btn)、QWidget widget.cpp #include "widget.h" #include "ui_widget.h" #include <QFile> #include <QFileDialo…

node.js从入门到快速开发一个简易的web服务器

浏览器中JavaScript学习路径: JavaScript基础语法浏览器内置API(DOMBOM)第三方库(jQuery,art-template等) Node.js的学习路径 JavaScript基础语法Node.js内置API模块(fs、path、http等)第三方API模块(express、mysql等) Node.js安装 通过Node.js 来运行Javascript 代码&am…

坝上草原与闪电湖多伦湖自驾行程记录与攻略

本文介绍河北坝上草原、内蒙古多伦湖2天2夜自驾自由行&#xff08;坝上草原1日、多伦湖1日&#xff09;的每日详细行程、游览心得、避坑经历等。 2024年09月中秋节期间&#xff0c;我们一行4人从北京出发&#xff0c;自驾前往河北省与内蒙古自治区等2地&#xff0c;进行了一共为…

几个可以给pdf加密的方法,pdf加密详细教程。

几个可以给pdf加密的方法&#xff0c;pdf加密详细教程。在信息快速传播的今天&#xff0c;PDF文件已经成为重要的文档格式&#xff0c;被广泛应用于工作、学习和个人事务中。然而&#xff0c;随着数字内容的增加&#xff0c;数据安全和隐私保护的问题愈发凸显。无论是商业机密、…

高级算法设计与分析 学习笔记9 跳表

单链表的样子我们很熟悉了&#xff1a; 怎么加快查找&#xff1f;&#xff1a; 查找的具体方法&#xff1a; 超过了就回头下去。 这条“快速路”最好是几个节点呢&#xff1f;&#xff1a; 假如我们弄好多层跳表呢&#xff1f;&#xff1a; 给弄成2叉树了&#xff01; 如何插入…

设计模式、系统设计 record part01

技术路线&#xff1a; 工程师》设计师》分析师》架构师 管理路线&#xff1a; 项目经理》技术经理 工程师&#xff1a; 编程技术、测试技术 设计师&#xff1a; 工程师设计技术 分析师&#xff1a; 设计师分析技术 架构师&#xff1a; 分析师架构技术 项目经理&#xff1a; 时间…

发掘3D文件格式的无限潜力:打造沉浸式虚拟世界

在当今数字化时代&#xff0c;3D技术的应用范围日益广泛&#xff0c;涵盖电影后期制作、产品原型设计、虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;、游戏等众多领域。而3D文件格式作为3D技术的核心组成部分&#xff0c;对于实现3D数据和模型的存…

【linux进程】进程状态僵尸进程孤儿进程

目录 一&#xff0c;linux下的特定进程状态1. R状态 vs S状态2. T状态 vs t 状态3. D状态 vs S状态 二&#xff0c;OS中的进程状态1. 运行状态2. 阻塞状态3. 挂起状态 三&#xff0c;僵尸进程和孤儿进程1. 僵尸状态和僵尸进程2. 孤儿进程 一&#xff0c;linux下的特定进程状态 …

kafka分区和副本的关系?

概念来一波 比如一个topic的消息存放在两个分区中&#xff0c;分区1和分区2.每个分区都有自己的一个副本。即比如分区1有副本1/副本2/副本3&#xff0c;分区2也有分区2的副本1/副本2/副本3。一个节点上的一个topic的可以由多个分区存放&#xff0c;但是每个分区的leader副本会尽…

丹摩智算平台部署 Llama 3.1:实践与体验

文章目录 前言部署前的准备创建实例 部署与配置 Llama 3.1使用心得总结 前言 在最近的开发工作中&#xff0c;我有机会体验了丹摩智算平台&#xff0c;部署并使用了 Llama 3.1 模型。在人工智能和大模型领域&#xff0c;Meta 推出的 Llama 3.1 已经成为了目前最受瞩目的开源模…

manim中文字和目标的对齐方法的使用

为什么要文字对齐 &#xff1f; 对齐原则在现实生活中无处不在&#xff0c;比如&#xff1a;书籍、货架、地铁座位等等&#xff1b;对齐的目的其实就是在规整文案信息&#xff0c;对齐有利于信息传达以及视觉规范&#xff0c;当我们做文字编排工作时&#xff0c;要根据构图形…

【计算机网络 - 基础问题】每日 3 题(二十六)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

基于springboot+vue 旅游网站的设计与实现

基于springbootvue 旅游网站的设计与实现 摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱&#xff0c…

【中级通信工程师】终端与业务(五):市场与通信市场

【零基础3天通关中级通信工程师】 终端与业务(五)&#xff1a;市场与通信市场 本文是中级通信工程师考试《终端与业务》科目第五章《市场与通信市场》的复习资料和真题汇总。终端与业务是通信考试中最基础的科目之一&#xff0c;复习重点包括通信市场的概念、通信市场结构、以…

【IOS】申请开发者账号(公司)

官网&#xff1a;Apple Developer (简体中文) 申请开发者账号前提 如果是第一次申请建议注册一个新的apple id作为组织的开发者账号。&#xff08;确保apple id的个人信息是真实的&#xff0c;不能是网名或者是其他名。后续的申请步骤需要能和apple id的个人信息对上。&#…

嵌入式开发 —— IO口高阻态模式

目 录 高阻态输入模式一、区别于浮空输入二、高阻态输入的优点 高阻态输入模式 MCU管脚的高阻态模式是电路的一种输出或输入状态。在这种状态下&#xff0c;电路的输入端或输出端对地或对电源的电阻非常大&#xff0c;在实际应用中与引脚悬空类似。 电气特性 1、高电阻值&…

C#入门教程

目录 1.if分支语句 2.面向对象 3.static简单说明 1.if分支语句 我们的这个C#里面的if语句以及这个if-else语句和C语言里面没有区别&#xff0c;就是打这个输出上面的方式不一样&#xff0c;c#里面使用的是这个console.writeline这个指令&#xff0c;其他的这个判断逻辑都是一…

技术美术百人计划 | 《5.1.3 PBR-基于物理的灯光》笔记

1. 辐射度学 定义&#xff1a;辐射度学是一门以整个电磁波段的电磁辐射能测量为研究的科学。 而计算机图形学中涉及的辐射度学&#xff0c;则集中于整个电磁波普中光学谱段中的可见光谱段的辐射能的计算。 1.1. 立体角 概念&#xff1a;单位球体上的一块区域对应的球面部分的…

计算机毕业设计 中医院问诊系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…