3

node.js(基本的に)を使用してページをスクレイピングし、いくつかの要素のCSS値にアクセスするために結果をjQuerifyします。ただし、何らかの理由で、.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 と簡単に結合でき、javascript を挿入できるヘッドレス Webkit として機能します。

于 2012-04-11T22:20:26.837 に答える