2

次のコードがあり、それぞれの計算された CSS を使用して HTML 全体をダウンロードし、JSON に変換したいと考えています。リクエストモジュールを試しています。

request('http://www.modulus.io', function (error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body); // Show the HTML for the Modulus homepage.
    }
});

本文には html のみが含まれますか、それともすべてが含まれますか? そして、必要なcssを取得するにはどうすればよいですか。

4

1 に答える 1

1

私の知る限り、レンダリングせずに計算されたスタイルを取得することはできません。そのため、Phantom js または Selenium を見て、サーバー上でページをヘッドレスでレンダリングすることができます。または、この stylestat から取得した情報が十分かどうかを確認してください https://github.com/t32k/stylestats

3 番目のオプションとして、リクエストを使用してページをダウンロードし、https://www.npmjs.com/package/cheerio を使用してスタイルシート参照を見つけ、それらのファイルを再度ダウンロードして、https: //www.npmjs.com/package を使用して解析することができます。 /cssparser .

3 番目のオプションの例:

var request = require('request');
var cheerio = require('cheerio');
var cssparser = require("cssparser");
var cssbeautifier = require('cssbeautifier');
var parser = new cssparser.Parser();
var $;

request('http://www.modulus.io', function (error, response, body) {

    if (!error && response.statusCode == 200) {
        // Load into cheerio so we can work with it
        // as we would with jQuery
        $ = cheerio.load(body);

        var stylesheet = $('link[type="text/css"]').attr('href');

        request('http://www.modulus.io' + stylesheet, function(error, response, body){

            var css = cssbeautifier(body);
            var json = parser.parse( css );

           console.log('Your json ===>>', json);

        });


    }

});

しかし、このページはスタイルシートで不明な文字を使用しているため、このスクリプト エラーが発生するため、それを回避する方法を見つける必要があります。

それが役に立てば幸いです、頑張ってください!

于 2016-01-15T05:43:55.940 に答える