javascript - 从请求模块收到的正文是否包含计算的 css?

标签 javascript html css node.js node-request

我有以下代码,我想下载整个 HTML 及其各自计算的 CSS 并将其转换为 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。

最佳答案

据我所知,在不渲染的情况下获取计算样式是不可能的。因此,您可以查看 Phantom js 或 Selenium 以在服务器上 headless 地呈现页面。或者你看看你从这个 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);

        });


    }

});

但由于此页面在样式表中使用了一些未知字符,因此此脚本错误,因此您需要找到解决方法。

希望对您有所帮助,祝您好运!

关于javascript - 从请求模块收到的正文是否包含计算的 css?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34804882/

相关文章:

jquery - 通过id在另一个div中添加一个div?

javascript - 单击时使用 jQuery 和 AJAX 更改页面内容

javascript - 如何仅在使用 css 或(angular)javascript 的特定单词后将句子分成 2 行

javascript - 从另一页导航到另一页

javascript - Canvas 宽度和高度均为 100% 的质量差

html - CSS 3 视频元素样式

javascript - 如何根据内容更改 div 类?

Javascript Tic Tac Toe - 获胜功能不调用/工作

css - AngularJS:用ng-animate & ng-view,如何制作3D立方体旋转效果?

python - 我应该使用哪个(对于基于 python 的站点)? sass、compass、switchcss...替代方案?