【问题标题】:Node Request: Get certain class/id节点请求:获取某个类/id
【发布时间】:2017-06-05 18:27:15
【问题描述】:

我正在使用节点模块Request。我过去也使用过node-fetch,但request 似乎更好。我希望能够用某个 ID/Class/Span 记录一些东西,你可以命名它。这是我当前记录整个身体的代码。

const request = require('request');

request("https://discord.js.org/#/docs/main/stable/class/GuildMember", (err, response, body) => {
    if (err) console.log(err);

    console.log(body)
});

我想记录用户提供的任何Property 的内容,假设他们提供bannable 我想记录div#doc-for-bannable.class-prop.class-item 的内容,但我不知道该怎么做。

编辑:

我尝试按照建议使用 Cheerio,但它没有给我任何响应,只是控制台中的一个空格。我尝试的代码是:

request("https://discord.js.org/#/docs/main/stable/class/GuildMember", (err, response, body) => {
    if (err) console.log(err);
    const $ = cheerio.load(body);

    const g = $('docs-page'); // this doesn't work either, after trying '#doc-for-bannable`

    const gText = g.text();

    console.log(gText)
}); 

【问题讨论】:

  • 看看cheerio。这正是您所需要的。 github.com/cheeriojs/cheerio
  • @KrishnaKalubandi 我编辑了我的原始帖子并解释了我现在遇到的问题。

标签: javascript node.js request node-request


【解决方案1】:

底层请求页面在使用 XHR/ajax 请求从后端请求数据后构建 DOM。

因此,当您使用“请求”时,页面会在没有触发 XHR 的情况下加载

但是,如果您仔细查看“网络”选项卡,您会发现 https://raw.githubusercontent.com/hydrabolt/discord.js/docs/stable.json

这包含您正在寻找的数据。 您可以为此 url 使用 nodejs 的“请求”并使用 json

【讨论】:

  • 太棒了,谢谢!我可以使用 JSON。但是有一个问题,如果你将它们全部折叠并只打开classes,那么它会返回一个仅编号的 70 个类的列表(不是按它们的实际名称,例如:GuildMember),它是第 33 号,无论如何而不是说classes[33].methods[16].nameclasses[GuildMember] 或类似的东西?
  • 您需要将数组映射到您喜欢的对象模式(基本 JS)
猜你喜欢
  • 2014-11-29
  • 2019-02-09
  • 2018-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-08
  • 2018-05-28
  • 2015-09-15
相关资源
最近更新 更多