首页 > 解决方案 > 为什么cheerio.load() 函数不能正常工作

问题描述

const cheerio = require('cheerio');

const HTML = `<tbody>
<tr>
    <th>
        Team Name
    </th>
    <th>
        Year
    </th>
    <th>
        Wins
    </th>
    <th>
        Losses
    </th>
</tr>
</tbody>
`;

const $ = cheerio.load(HTML);
const text = $('tr').text();
console.log(text);

在这里,我没有收到文字。为什么??HTML 字符串中是否有任何错误?我无法确定问题所在。请帮忙!!!

标签: javascriptnode.jsweb-scrapingcheerio

解决方案


一个<tbody>元素必须是一个元素的子<table>元素,而你的不是。

在当前版本的 Cheerio 中,解析器无法从该错误中恢复。编写有效的 HTML。(将您的字符串包裹起来<table></table>足够了)。

(如果您降级到 Cheerio 0.22.0,那么那里的解析器可以处理它,但修复输入比使用过时的库更可取)。


推荐阅读