【问题标题】:Using Phantom.js evaluate, how can I get the HTML of the page?使用 Phantom.js 进行评估,如何获取页面的 HTML?
【发布时间】:2013-05-18 09:22:51
【问题描述】:
page.evaluate(function() { return document; }, function(result){    
    console.log(result)                    
    next();
});

result 实际上是一个巨大的对象。我不知道该对象的属性和属性。我只想要页面的 HTML as you would see it in Chrome inspector

从对象的外观来看,HTML 似乎包含 CSS 和 javascript..这很奇怪。用户不应该看到 CSS 和 javascript,因为它们不是网页的 HTML。这些是外部文件。我只想要用户会看到的 HTML。

【问题讨论】:

    标签: javascript html node.js backbone.js phantomjs


    【解决方案1】:

    document 的类型是 HTML 文档。要将整个 DOM 作为字符串获取,您可以执行 document.documentElement.outerHTML

    evaluate 之外,您可以使用page.content。它是一个字符串。

    我不知道您所说的“HTML 包括 CSS 和 JavaScript”或“网页的 HTML”是什么意思。您是指脚本修改的页面源和DOM之间的区别吗?以上都给你当前的 DOM,而不是原始页面源。

    【讨论】:

    • 谢谢。打印 HTML。但是,我正在评估的页面是一个 Backbone 应用程序。为什么我没有看到呈现到 HTML 中的视图。就好像 javascript 根本没有运行。
    • 很难说没有更多信息,但您可能在初始化代码有机会运行之前访问了 HTML。确保您在提供给page.open 的回调中访问page.document。您也可以尝试添加暂停来娱乐。
    猜你喜欢
    • 2013-05-18
    • 1970-01-01
    • 2020-08-12
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多