2012-04-11 79 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