亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

慕桂英3389331 2023-10-10 10:34:25
前端的新手。我在使用 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中使用cheerioconst cheerio = require('cheerio');var fs = require('fs');const demo= cheerio.load(fs.readFileSync('sample123.html'))console.log(demo('#ctr2'));
查看完整描述

1 回答

?
慕田峪9158850

TA貢獻1794條經驗 獲得超7個贊

我發現您的代碼有幾個問題:

  1. #ctr2是帶有 的元素的選擇器id="cntr2"。id您的 HTML 中沒有任何值。".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項,則可以.first()在選擇器結果上使用,如下所示:


const cheerio = require('cheerio');

var fs = require('fs');


const $ = cheerio.load(fs.readFileSync('sample123.html'))

console.log($('.ctr2').first().text());

這將生成以下輸出:


67%


查看完整回答
反對 回復 2023-10-10
  • 1 回答
  • 0 關注
  • 174 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號