【问题标题】:Getting element name inside html using cheerio使用cheerio在html中获取元素名称
【发布时间】:2020-07-06 14:48:14
【问题描述】:

前端的新手。我无法使用cheerio 在html 中获取元素。请参阅下面我正在尝试的内容。我查看了其他帖子,它们有助于了解cheerio 的工作原理,但不是这个。

我的目标是获得价值。我想从<td class="ctr2">67%</td> 获得 67% 的价值。我越来越不确定。这个标签td class="ctr2" 出现多次,但我只想要从第一个开始。

我已经尝试安静一段时间了。我使用cheerio 得到undefined。我错过了什么?

<tfoot>
                <tr>
                    <td>Total</td>
                    <td class="bar">966 of 2,945</td>
                    <td class="ctr2">67%</td>
                    <td class="bar">56 of 168</td>
                    <td class="ctr2">66%</td>
                    <td class="ctr1">72</td>
                    <td class="ctr2">224</td>
                    <td class="ctr1">167</td>
                    <td class="ctr2">580</td>
                    <td class="ctr1">31</td>
                    <td class="ctr2">140</td>
                    <td class="ctr1">0</td>
                    <td class="ctr2">17</td>
                </tr>
            </tfoot>



我正在尝试在 node.js 中使用cheerio

const cheerio = require('cheerio');
var fs = require('fs');

const demo= cheerio.load(fs.readFileSync('sample123.html'))
console.log(demo('#ctr2'));

【问题讨论】:

    标签: javascript html node.js web-scraping cheerio


    【解决方案1】:

    我发现您的代码存在一些问题:

    1. #ctr2 是带有id="cntr2" 的元素的选择器。您的 HTML 中没有任何 id 值。相反,如果您想选择具有该类名称的项目,则需要使用 ".ctr2"
    2. 您的 HTML 不完整,因为它周围没有 &lt;table&gt;&lt;/table&gt;

    如果你修复这两个问题并运行这段代码:

    const cheerio = require('cheerio');
    var fs = require('fs');
    
    const $ = cheerio.load(fs.readFileSync('sample123.html'))
    $('.ctr2').each((index, element) => {
        console.log($(element).text());    
    });
    

    然后,它将生成以下输出:

    67%
    66%
    224
    580
    140
    17
    

    如果您只想要第一个.cntr2 项目,您可以在选择器结果上使用.first(),如下所示:

    const cheerio = require('cheerio');
    var fs = require('fs');
    
    const $ = cheerio.load(fs.readFileSync('sample123.html'))
    console.log($('.ctr2').first().text());
    

    这将产生这个输出:

    67%
    

    【讨论】:

      猜你喜欢
      • 2014-05-21
      • 2017-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2014-11-07
      • 1970-01-01
      • 2018-11-12
      相关资源
      最近更新 更多