2016-01-15 12 views
2

我有下面的代码,我想下载整个HTML与他们各自的计算CSS并将其转换为JSON。我正在尝试请求模块。从请求模块接收到的身体是否保存了计算的CSS?

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。

+2

'body'将整个页面......如何让CSS,如果不是“内联”,你解析在'body'变量的HTML,找到外部CSS引用...然后解析这些文件包含的任何css文件和/或图像... –

回答

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); 

     }); 


    } 

}); 

但由于这个页面中有样式表使用一些未知字符此脚本错误的,所以你需要找到周围的一种方式。

希望它能帮助,祝你好运!

相关问题