从表Cheerio获取文本

时间:2018-05-26 15:34:36

标签: javascript node.js cheerio

处理网络抓取项目,我无法以统一的方式获取某些数据。该页面有一个双列表,我只需要抓取第二列的文本来运行编译值。

我正在这样做:

const rq = require('request');
const cheerio = require('cheerio');

rq(url, (err, res, html) => {
    let $ = cheerio.load(html);
    $('#table-id > tbody > tr > td.data').toArray().map(item => {
        console.log(item.text());
    });
});

但是我收到.text()不是函数的错误。

2 个答案:

答案 0 :(得分:3)

.text() JQuery 方法,因此要使用它,您需要将项目设为 JQuery 元素

这应该有效:

console.log($(item).text())

答案 1 :(得分:0)

您必须将item$()打包在一起,才能将其转换为cheerio元素。

$('#table-id > tbody > tr > td.data').toArray().map(item => {
  console.log($(item).text());
});

您还可以使用.each并放弃toArraymap。并使用$(this)来引用当前元素。

$('#table-id > tbody > tr > td.data').each(() => {
   console.log($(this).text());
});