Phantomjs、ajax内容和JS正在内联

Phantomjs、ajax内容和JS正在内联,ajax,google-analytics,requirejs,phantomjs,Ajax,Google Analytics,Requirejs,Phantomjs,我一直在使用PhantomJS生成一些应用程序页面的静态版本,这些页面使用ajax调用呈现页面的各个部分。获取HTML内容的PhantomJS脚本似乎很简单: var page = require('webpage').create(); page.settings.userAgent = 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17 (KHTML, like

我一直在使用PhantomJS生成一些应用程序页面的静态版本,这些页面使用ajax调用呈现页面的各个部分。获取HTML内容的PhantomJS脚本似乎很简单:

var page = require('webpage').create();                                   
page.settings.userAgent = 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17 (KHTML, like       Gecko) Chrome/24.0.1312.70 Safari/537.17';
// I want JS to execute, so that the ajax sections can be loaded
page.settings.javascriptEnabled=true;
page.open('http://<host>/<some-page>/', function (status) {    if (status !== 'success') 
{
    console.log('Unable to access network');
} else {
    console.log(page.content);                                            
}
phantom.exit();
});
var page=require('webpage').create();
page.settings.userAgent='Mozilla/5.0(X11;Linux i686)AppleWebKit/537.17(KHTML,比如Gecko)Chrome/24.0.1312.70 Safari/537.17';
//我希望执行JS,以便可以加载ajax部分
page.settings.javascriptEnabled=true;
第页打开('http:////,函数(状态){if(状态!='success')
{
console.log('无法访问网络');
}否则{
console.log(page.content);
}
phantom.exit();
});
我遇到的问题是,一些JS脚本,如requirejs和Google Analytics,通过添加相关的JS脚本来修改文档,并几乎在文档中内联。例如:

转换为:

<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requi    remodule="jquery" src="/media/js/../lib/jquery/jquery-1.7.1.min.js"> .....
。。。。。
长话短说,我想使用phantomJS生成静态(HTML)版本的页面,该页面:

  • 使用ajax请求填充某些部分
  • 保持css和JS链接不变,避免它们内联

  • @拉维,请查看@Cybermaxs的答案


    基本上,您必须等待特定元素加载。

    @Ravi,请查看@Cybermaxs-answer


    基本上,您必须等待特定元素加载。

    谢谢您的评论。这是我走的路线。谢谢你的评论。这是我走的路线。