【问题标题】:Is it possible to get the DOM structure of a page after all JS executes?是否有可能在所有 JS 执行后获取页面的 DOM 结构?
【发布时间】:2013-08-18 08:09:38
【问题描述】:

使用诸如 cURL 或(在 PHP 中)流上下文/file_get_contents 之类的东西来获取页面的起始 HTML 标记非常简单,但如今,有如此多的页面受到 JS 的严格控制,即使你得到了开始标记页面时,您仍然无法轻易确定页面的实际构成(因为页面的大部分是由运行客户端的 JS 构成的)。

因此,是否有可能在页面的所有加载 JS 通过使用诸如 cURL 之类的东西执行之后获取页面的整个 DOM 结构?

(作为额外的信息,我知道您可以使用 Chrome 开发工具等获得 DOM 结构,但我想知道是否有任何方法可以自动化该过程。)

非常感谢。

【问题讨论】:

    标签: javascript dom curl google-chrome-devtools onload


    【解决方案1】:

    您必须在浏览器中运行它,然后获取document.documentElement.outerHTML 的内容。

    我认为仅在 PHP 中这是不可能的。您必须使用:

    • phanthomJS

      PhantomJS 是一个可使用 JavaScript API 编写脚本的无头 WebKit。 使用标准 DOM API 或 jQuery 等常用库访问和操作网页。

    • SlimerJS

      SlimerJS 与 PhantomJs 类似,只是它运行的是 Mozilla Firefox 的浏览器引擎 Gecko,而不是 Webkit。

    【讨论】:

    • 好答案。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 2017-04-17
    • 2014-09-28
    相关资源
    最近更新 更多