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

作为第三种选择,您可以使用请求下载页面,使用https://www.npmjs.com/package/cheerio查找样式表参考,然后再次下载这些文件并使用https://www.npmjs.com/package解析它/cssparser

第三个选项示例:

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 回答