我们需要将输入的HTML字符串加载到浏览器种类的环境中,运行html(它应该在内部运行所有内联脚本,即有几个ajax调用),然后提供呈现的HTML作为输出。使用nodejs呈现HTML输出
这是可能的节点?
是否有任何节点模块可用于此目的。
请在这方面的帮助。
我们需要将输入的HTML字符串加载到浏览器种类的环境中,运行html(它应该在内部运行所有内联脚本,即有几个ajax调用),然后提供呈现的HTML作为输出。使用nodejs呈现HTML输出
这是可能的节点?
是否有任何节点模块可用于此目的。
请在这方面的帮助。
听起来像你在寻找NodeJS的无头浏览器。看到这里http://github.com/dhamaniasad/HeadlessBrowsers
列表这是例如,从CasperJS
您可以安装为节点模块
npm install -g casperjs
而且
var casper = require('casper').create();
casper.start('http://www.google.fr/', function() {
this.echo(this.getHTML());
});
casper.run();
运行
casperjs app.js
对于运行时的NodeJS
安装
npm install nightmare
代码
var Nightmare = require('nightmare');
var nightmare = Nightmare({ show: false });
nightmare.goto("http://www.google.com")
.evaluate(function(){
return document.body.outerHTML;
})
.end()
.then(function (result) {
console.log(result)
})
运行
nodejs app.js
谢谢。 这行“var casper = require('casper')。create();”显示错误“无法找到模块casper”。 为了确认,我们已经相应地安装了节点模块“casperjs”。 请帮忙。 – user3220129
下面是我放在node.app app.js中的代码。 var casper = casperjs.create(); casper.start('http://www.google.fr/',function(){ this.echo(this.getHTML()); }); casper.run(); 然后,当尝试使用命令“node app.js”使用节点运行时,会看到错误“无法找到模块casper”。 – user3220129
@ user3220129 casperjs需要它自己的运行时。为nodejs兼容尝试Nightmare。我编辑了答案。 – Hereblur
在我看来,angularJS是网页渲染的最佳Node模块之一 – Grey
感谢您的意见。目前我们试图解决的问题是:我们应该能够在后台加载浏览器中的html字符串,它应该在内部调用所有ajax调用来获取数据,并根据检索到的数据运行少量脚本来更新HTML DOM。从而,整个HTML将被渲染。然后,我们应该能够将整个呈现的HTML内容作为字符串获取。请帮忙。 – user3220129
如果需要创建添加到请求页面的模板,是不是更好?使用Ajax获取十几个不同的HTML元素,如果你有很多用户一次使用你的网站,那么获取内容本身就会对服务器造成严重的负担,最好是获取你需要的数据,然后发送给客户端将其呈现在那里,而不是在服务器上呈现它,然后将其发送给用户 – Grey