如何使用 javascript/discord.js 从网页中获取一段文本并将其分配给变量?

How to get a piece of text from a webpage and assign it to a variable using javascript/discord.js?

我正在尝试为 discord bot 编写一段代码,它会在键入 /gif {text} 时显示来自名为 giphy 的网站的最高结果。为此,我已经完成了转到相应 link(搜索结果)的部分。现在我想从第一个结果(单击它时打开的结果)中提取 a-href (link) 并将其分配给一个变量,我可以根据要求显示该变量。另外,我不想发送 URL 而是使用 .send

{files: []} part 的附件

我不知道从哪里开始使用 discord.js 从其他网页中提取 我也想过添加一个 view-source: 但我不知道如何提取一段文本并分配给一个变量 HTML(JavaSript DOM?)中有一种方法,但它使用 i-frames。

else if (message.content.search("/gif") == 0) {
    let msg = message.content;
    let gif1 = msg.split("/gif")[1].trim()
    let gif2 = gif1.replace(" ", "-");
    let gif = "https://giphy.com/search/" + gif2;
      message.channel.send("Most relevant result for" + " " + gif1, {files: [gif]} )
      }

显然,上面的代码在不和谐频道中显示了一个文本文件。我希望它显示第一个结果的 gif,而不显示 link.

我建议使用 giphy-api: 有了它你可以做:

var giphyApi = require("giphy-api")();
giphyApi.search({
    q: 'pokemon',
    rating: 'g'
}, function (err, res) {
    console.log(res.data[0].images.original.url)
});

它会 console.log: https://media3.giphy.com/media/iBANmdIlMNJVC/giphy-preview.gif?cid=e1bb72ff5ca0b1d72f66564d45c6925c

这意味着你可以做到:

var giphyApi = require("giphy-api")();

giphyApi.search({
    q: 'pokemon',
    rating: 'g'
}, function (err, res) {
    message.channel.send('Gif:', new Discord.Attachment(res.data[0].images.original.url , 'gif.gif'))
});

    client.on('message', async message => {
    if(message.content.includes("!gif")){
const args = message.content.slice().trim().split(/ +/g);
const command = args.shift().toLowerCase(); 
let converts = args.join(" ");  

if(converts ==""){converts = "random"}  
 giphyApi.search({
    q: converts,
    rating: 'g'
}, function (err, res) {
let embed = new Discord.RichEmbed()
.setColor(0x00ae86)
.setTitle(` Result for ${converts}`)
.setImage((res.data[0].images.original.url))
message.channel.send({embed:embed})  

}); 
}

});