【问题标题】:How to get page HTML before it get changed by Javascript in PhantomJS如何在 PhantomJS 中的 Javascript 更改页面 HTML 之前获取它
【发布时间】:2014-07-24 02:54:10
【问题描述】:

我正在尝试获取页面纯 html,以便在脚本评估后进行比较。但我什么也没找到。

我检查了网页模块 API 页面。 http://phantomjs.org/api/webpage/

但是每个事件在受到页面脚本的影响后都会返回给我 HTML,或者是一个空的 html 结构。

【问题讨论】:

  • 如果您这样做是为了自己的个人调试,只需使用Ctrl-U 检索页面的原始源。否则会变得有点复杂。
  • 对不起。我没有时间测试它。我今天就做。但我认为它会起作用。

标签: javascript node.js phantomjs


【解决方案1】:

没有 API 调用,但您可以轻松地将原始页面源下载为单独的 XHR:

var originalSource = page.evaluate(function(){
    var xhr = new XMLHttpRequest();
    xhr.open("GET", ""+window.location, false);
    xhr.send();
    return xhr.responseText;
});

但是,如果页面源依赖于会话,这可能不起作用。然后调整请求标头可能会起作用。另见Can I get the original page source (vs current DOM) with phantomjs/casperjs?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-28
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    • 1970-01-01
    相关资源
    最近更新 更多