使用cheerio获取html中的元素名称

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


我的目标是获得价值。我想从中获得 67% 的价值<td class="ctr2">67%</td>。我变得不确定。该标签td class="ctr2"出现多次,但我只想从第一次出现。


我已经尝试安静一段时间了。我开始undefined使用cheerio。我缺少什么?


<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'));


慕桂英3389331
浏览 69回答 1
1回答

慕田峪9158850

我发现您的代码有几个问题:#ctr2是带有 的元素的选择器id="cntr2"。id您的 HTML 中没有任何值。".ctr2"相反,如果您想选择具有该类名称的项目,则需要使用。您的 HTML 不完整,因为没有<table>及其</table>周围的内容。如果您修复这两件事并运行此代码:const cheerio = require('cheerio');var fs = require('fs');const $ = cheerio.load(fs.readFileSync('sample123.html'))$('.ctr2').each((index, element) => {&nbsp; &nbsp; console.log($(element).text());&nbsp; &nbsp;&nbsp;});然后,它将生成以下输出:67%66%22458014017如果您只想要第一.cntr2项,则可以.first()在选择器结果上使用,如下所示:const cheerio = require('cheerio');var fs = require('fs');const $ = cheerio.load(fs.readFileSync('sample123.html'))console.log($('.ctr2').first().text());这将生成以下输出:67%
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5