我有以下代码,我想下载整个 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/