Cheerio .css([property])总是返回null?

时间:2016-05-11 14:35:33

标签: javascript node.js web-scraping cheerio

我最近开始使用 NodeJS Cheerio 。 我正在获取外部网址,并使用Cheerio加载html。

我偶然发现了一个问题,每当我试图获取元素的css属性时,$.css([property])总是返回null,无论我给出什么样的选择器或属性它

我在做什么:

var express = require('express');
var fs = require('fs');
var request = require('request');
var cheerio = require('cheerio');
app = express();

app.get('/something_something', function (req, res) {
   request('some_url', function (error, response, html) {
       var $ = cheerio.load(html)
//
       console.log($('body').css('width'));
   }
}

这将始终记录null,无论它具有什么选择器或css属性。 (请注意我已经过度检查jQuery对象$(' body')是否存在,无论有什么URL都会发生这种情况)

另外,如果我设置$('body').css('width', '100px') 然后console.log($('body').css('width')),它将显示100px。所以我猜测它不是css()方法本身,而是Cheerio得到/没有得到元素样式的方式

*其他Cheerio方法有效,例如text()val()remove()

我仍然是NodeJS / Cheerio的新手,所以任何帮助,解释,建议或信息都会是金色的,

Cheerio!

1 个答案:

答案 0 :(得分:1)

Cheerio是一个DOM界面。它解析HTML并允许您访问节点及其属性。它不是虚拟浏览器,试图模拟实际浏览器的HTML视图。由于它不会对渲染进行任何渲染或模拟,因此无法告诉您只有在涉及渲染问题时才能确定的事物(如DOM元素的尺寸)。