3

我正在使用 node.js(基本上)抓取页面,然后 jQuerify 结果以访问某些元素的 CSS 值。但是,由于某种原因, .css("something") 总是返回一个空值。但是,例如 .text() 工作正常。有什么提示吗?我是否需要先输出抓取的页面才能访问 CSS?

var request = require('request');
var jsdom = require('jsdom');

var req_url = 'URL';

request({uri: req_url}, function(error, response, html){
    if(!error && response.statusCode == 200){
        var window = jsdom.jsdom(html).createWindow();
        jsdom.jQueryify(window, 'http://code.jquery.com/jquery-1.4.2.min.js', function() {
            var bg = window.$("#ID").css("color");
            console.log(bg);
        });
    }
});
4

1 回答 1

0

我认为 .css() 只会返回给定元素的内联 css。

不幸的是,如果没有活动的浏览器,您将很难做到。

你应该研究一下 PhantomJS——它很容易与 node.js 结合,并充当一个无头 webkit,你可以将 javascript 注入其中。

于 2012-04-11T22:20:26.837 回答