吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 206|回复: 7
收起左侧

[其他求助] 帮忙看看这个js怎么调用取返回值

[复制链接]
火云邪神 发表于 2024-10-8 21:01
25吾爱币
"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
const axios = require("axios");
const cheerio = require("cheerio");
async

function kuGeCi(query) {
    let response = await axios.default.get("https://www.kugeci.com/search?q=" + encodeURIComponent(query));
    const $ = cheerio.load(response.data || "")
    const elements = $("#tablesort>tbody>tr");
    if (elements.length === 0) {
        return [];
    }
    let result = elements.map((i, el) => {
        return {
            title: $(el).find("tr>td:nth-child(2) a").text(),
            id: $(el).find("tr>td:nth-child(2) a").attr("href"),
            artist: $(el).find("tr>td:nth-child(3) a").text(),
        }
    }).get();
    return result;
}
async

function search(query, page, type) {
    if (type !== 'lyric') {
        return;
    }
    query = query.replace(/(.*)\..*/, "$1");
    let artist = "";
    let title = "";
    if (query.includes("-")) {
        [artist, title] = query.split(/\s*-\s*/).map(i => i.trim());
    } else {
        title = query;
    }
    return {
        isEnd: true,
        data: await kuGeCi(title),
    }
}
async

function getLyric(musicItem) {
    let response = await axios.default.get(musicItem.id)
    return {
        rawLrc: cheerio.load(response.data)("#lyricsContainer").text()
    }
}
module.exports = {
    platform: "酷歌词",
    author: 'QQ频道@LY+',
    version: "0.0.0",
    cacheControl: "no-store",
    supportedSearchType: ['lyric'],
    search,
    getLyric
}

最佳答案

查看完整内容

跑了一下 结果: [mw_shl_code=text,true]➜ node index.js [ { title: '七里香 ', id: 'https://www.kugeci.com/song/cFebEDIr', artist: '周杰伦' }, { ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

TrevorP 发表于 2024-10-8 21:01
火云邪神 发表于 2024-10-11 20:11
你看看那音乐播放器就明白了,播放器里面不用写调用哪些网站的代码,调用一些js里面的内容搜索解析歌曲, ...

跑了一下

[JavaScript] 纯文本查看 复制代码
(async function () {
    const musicList = await kuGeCi('七里香')
    console.log(musicList)
    const lyric = await getLyric(musicList[0])
    console.log(lyric)
})()

结果:
[Plain Text] 纯文本查看 复制代码
➜ node index.js 
[
  {
    title: '七里香 ',
    id: 'https://www.kugeci.com/song/cFebEDIr',
    artist: '周杰伦'
  },
  {
    title: '七里香 ',
    id: 'https://www.kugeci.com/song/dfdjLRkh',
    artist: '施艾敏'
  },
  {
    title: '七里香 (Live) ',
    id: 'https://www.kugeci.com/song/8Y9Txifj',
    artist: '周杰伦'
  }
]
{
  rawLrc: '\n' +
    '                [00:01.01]七里香 - 周杰伦\n' +
    '[00:03.01]词:方文山\n' +
    '[00:04.01]曲:周杰伦\n' +
    '[00:27.80]窗外的麻雀在电线杆上多嘴\n' +
    '[00:34.36]你说这一句很有夏天的感觉\n' +
    '[00:41.01]手中的铅笔在纸上来来回回\n' +
    '[00:47.37]我用几行字形容你是我的谁\n' +
    '[00:54.11]秋刀鱼的滋味猫跟你都想了解\n' +
    '[01:01.36]初恋的香味就这样被我们寻回\n' +
    '[01:07.55]那温暖的阳光像刚摘的鲜艳草莓\n' +
    '[01:14.00]你说你舍不得吃掉这一种感觉\n' +
    '[01:20.64]雨下整夜我的爱溢出就像雨水\n' +
    '[01:27.45]院子落叶跟我的思念厚厚一叠\n' +
    '[01:34.14]几句是非也无法将我的热情冷却\n' +
    '[01:41.75]你出现在我诗的每一页\n' +
    '[01:47.80]雨下整夜我的爱溢出就像雨水\n' +
    '[01:54.44]窗台蝴蝶像诗里纷飞的美丽章节\n' +
    '[02:01.20]我接着写把永远爱你写进诗的结尾\n' +
    '[02:08.78]你是我唯一想要的了解\n' +
    '[02:41.96]雨下整夜我的爱溢出就像雨水\n' +
    '[02:48.44]院子落叶跟我的思念厚厚一叠\n' +
    '[02:55.12]几句是非也无法将我的热情冷却\n' +
    '[03:02.80]你出现在我诗的每一页\n' +
    '[03:08.86]那饱满的稻穗幸福了这个季节\n' +
    '[03:16.41]而你的脸颊像田里熟透的蕃茄\n' +
    '[03:22.61]你突然对我说七里香的名字很美\n' +
    '[03:29.32]我此刻却只想亲吻你倔强的嘴\n' +
    '[03:35.77]雨下整夜我的爱溢出就像雨水\n' +
    '[03:42.35]院子落叶跟我的思念厚厚一叠\n' +
    '[03:49.13]几句是非也无法将我的热情冷却\n' +
    '[03:56.78]你出现在我诗的每一页\n' +
    '[04:03.53]整夜 我的爱溢出就像雨水\n' +
    '[04:09.46]窗台蝴蝶像诗里纷飞的美丽章节\n' +
    '[04:16.55]我接着写把永远爱你写进诗的结尾\n' +
    '[04:23.85]你是我唯一想要的了解\n' +
    '\n' +
    '                '
}

RootPotence 发表于 2024-10-10 11:34
TrevorP 发表于 2024-10-10 15:09
都是异步函数,用 await getLyric(xx)或者getLyric(xx).then((data) => {console.log(data)})
 楼主| 火云邪神 发表于 2024-10-10 19:42
RootPotence 发表于 2024-10-10 11:34
需要什么?getLyric的结果吗

MusicFree这个音乐软件调用的外部js,不知道软件是怎么调用的
 楼主| 火云邪神 发表于 2024-10-10 20:48
TrevorP 发表于 2024-10-10 15:09
都是异步函数,用 await getLyric(xx)或者getLyric(xx).then((data) => {console.log(data)})

调用 哪个函数可以把js中需要的链接ID一类的以JSON形式返回出来
TrevorP 发表于 2024-10-11 18:42
火云邪神 发表于 2024-10-10 20:48
调用 哪个函数可以把js中需要的链接ID一类的以JSON形式返回出来

问题有点抽象,现在这点信息不够,你可以描述的具体点
这段代码里用 cheerio 是把 html 解析出来,自己处理成 json,看起来像kuGeCi这个函数会返回 id。
 楼主| 火云邪神 发表于 2024-10-11 20:11
TrevorP 发表于 2024-10-11 18:42
问题有点抽象,现在这点信息不够,你可以描述的具体点
这段代码里用 cheerio 是把 html 解析出来,自己 ...

你看看那音乐播放器就明白了,播放器里面不用写调用哪些网站的代码,调用一些js里面的内容搜索解析歌曲,我也想弄个播放器调用他的js自己用
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-13 08:59

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表