gpt4 book ai didi

ajax - Phantomjs、ajax 内容和 JS 内联

转载 作者:行者123 更新时间:2023-12-02 07:41:14 26 4
gpt4 key购买 nike

我一直在使用 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();
});

我遇到的问题是,一些 JS 脚本(例如 requirejs 和 Google Analytics)通过添加相关 JS 脚本来修改文档,并且几乎将自身内联到文档中。例如: <script data-main="main" src="require.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)版本:

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

最佳答案

@Ravi,请查看@Cyber​​maxs 的回答 Does PhantomJS capture all AJAX?

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

关于ajax - Phantomjs、ajax 内容和 JS 内联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17014363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com