簡體   English   中英

使用cheerio在html中獲取元素名稱

[英]Getting element name inside html using cheerio

前端東西的新手。 我無法使用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'));

我發現您的代碼存在一些問題:

  1. #ctr2id="cntr2"元素的選擇器。 您的 HTML 中沒有任何id值。 相反,如果要選擇具有該類名的項目,則需要使用".ctr2"
  2. 您的 HTML 不完整,因為它周圍沒有<table></table>

如果您修復這兩件事並運行此代碼:

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項目,您可以在選擇器結果上使用.cntr2 .first() ,如下所示:

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

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

這將生成此輸出:

67%

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM