Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何通过Cheerio获得这些值?_Javascript_Html_Node.js_Cheerio - Fatal编程技术网

Javascript 我如何通过Cheerio获得这些值?

Javascript 我如何通过Cheerio获得这些值?,javascript,html,node.js,cheerio,Javascript,Html,Node.js,Cheerio,我正在从网站()使用Cheerio到webscrape的包。然而,他们让这变得很尴尬,我不知道如何获得这些价值观。如何获取“数据备选方案”,然后对其进行格式化,使其只显示服务器名称 以下是我的代码和网站来源: request(options, function(err, resp, html) { if (!err) { const $ = cheerio.load(html); console.log(html); $('span',

我正在从网站()使用Cheerio到webscrape的包。然而,他们让这变得很尴尬,我不知道如何获得这些价值观。如何获取“数据备选方案”,然后对其进行格式化,使其只显示服务器名称

以下是我的代码和网站来源:

request(options, function(err, resp, html) {
    if (!err) {
        const $ = cheerio.load(html);

        console.log(html);
        $('span', '#i3180').each(function() {
            var url = $(this).text();

            urls.push(url);
    })
}

澳大利亚关系

在Cheerio中,您可以使用
attr
方法访问元素的属性:

$('selector').attr('attribute')

data alternations
中的数据是一个JSON,因此您只需解析它,但在此之前,请将
替换为

完整的解决方案如下所示:

let servers=$('.cheapest server').attr('data-alternations'))
让parsedServers=JSON.parse(servers.replace(/“/g,”);

在Cheerio中,您可以使用
attr
方法访问元素的属性:

$('selector').attr('attribute')

data alternations
中的数据是一个JSON,因此您只需解析它,但在此之前,请将
替换为

完整的解决方案如下所示:

let servers=$('.cheapest server').attr('data-alternations'))
让parsedServers=JSON.parse(servers.replace(/“/g,”);

获取数据属性有两个选项

选择1 选择2 文档: 没有部分链接,但在frontpage上有两个标题名为

  • .attr(名称、值)
  • .数据(名称、值)
有关更多示例,请参考jQuery文档

旁注:在纯JS中,您可以编写

  • 选项1:
    document.querySelector(“.cheapest server”).attr(“数据替代项”)
  • 选项2:
    document.querySelector(“.cheapest server”).dataset.alternations

获取数据属性有两个选项

选择1 选择2 文档: 没有部分链接,但在frontpage上有两个标题名为

  • .attr(名称、值)
  • .数据(名称、值)
有关更多示例,请参考jQuery文档

旁注:在纯JS中,您可以编写

  • 选项1:
    document.querySelector(“.cheapest server”).attr(“数据替代项”)
  • 选项2:
    document.querySelector(“.cheapest server”).dataset.alternations

不确定如何在Cheerio中实现这一点,但在vanilla JS中,您可能需要查找
const alternations=JSON.parse(document.querySelector(“span#i3180”).closest(“tr”).querySelector(“[data alternations]”)dataset.alternations)
以获得完整的
数据备选方案列表(只是JSON).map(([server])=>server);
获取一个具有服务器名称的数组。不知道如何在Cheerio中实现这一点,但在vanilla JS中,您可能需要查找
const alternations=JSON.parse(document.querySelector(“span#i3180”).closest(“tr”).querySelector(“数据替代项”).dataset.alternations)
获取完整的
数据备选方案
列表(仅为JSON)。使用
alternations.map(([server])=>server)获取包含服务器名称的数组;
。正是我要找的。谢谢。我似乎找不到文档,所以上面的帖子也有帮助。正是我要找的,谢谢。我似乎找不到文档,所以上面的帖子也有帮助。
$('.cheapest-server').attr('data-alternatives')
$('.cheapest-server').data('alternatives')