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

时间:2019-03-31 10:05:40

标签: javascript node.js discord.js

我正在尝试为discord bot编写一段代码,该代码将在键入/ gif {text}时显示名为giphy的网站的最高搜索结果。为此,我已经完成了指向相应链接(搜索结果)的部分。现在,我想从第一个结果(单击时打开的结果)中提取a-href(链接),并将其分配给变量,我可以根据要求显示该变量。另外,我不想发送网址,而是使用{files: []} part的{​​{1}}

发送附件

我不知道从哪里开始使用discord.js从其他网页中提取内容 我还考虑过添加一个.send,但是我不知道如何提取一段文本并分配给一个变量 HTML中有一种方法(JavaSript DOM?),但它使用i框架。

view-source:

显然,以上代码在不和谐频道中显示了一个文本文件。我希望它显示作为第一个结果的gif,而不显示链接。

2 个答案:

答案 0 :(得分:1)

我建议使用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'))
});

答案 1 :(得分:0)


    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})  

}); 
}

});