2012-04-11 82 views
3

我使用node.js(基本上)来抓取页面,然后jQuerify结果以便访问某些元素的CSS值。但是,由于某种原因,.css(“something”)总是返回一个空值。例如。 .text(),但是,工作正常。任何提示?在我可以访问CSS之前,是否需要先输出刮掉的页面?使用jQuery在使用node.js进行抓取时访问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); 
     }); 
    } 
}); 

回答

0

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

不幸的是,如果没有一个活动的浏览器,你要做的事很难做到。

你应该看看PhantomJS--它很容易与node.js结合起来,并且可以作为一个可以将JavaScript注入的无头webkit。

+0

我认为甚至没有内联的CSS可以阅读。但phanom.js确实看起来非常好,适合这项任务。谢谢。 – coski3003 2012-04-12 17:25:54