【问题标题】:Getting the final/timed render of a URL获取 URL 的最终/定时呈现
【发布时间】:2009-06-02 17:42:07
【问题描述】:

我正在寻找一种方法来提供 URL,并在其上运行 JavaScript 后获取网页的源代码。例如:

我有一个带有 . 在加载页面时,一些 JavaScript 会填充 div。 通过浏览器查看页面的源代码不会给出 div 中的信息。

据我所知,为了让浏览器渲染页面,div 必须已经填充了 (X|D)HTML,这意味着渲染后页面的源仍然只是嵌套标记,所以理论上应该有一个“最终”版本的页面源代码。

我考虑过使用 WebKit 或 Gecko 之类的渲染引擎,并以某种方式调整它们来执行此操作,但是这是一项相当大的任务,我真的不想复制已经完成的事情。有谁知道执行此任务的方法。

问候。

更新:我的目标是使用 Selenium(如已接受答案的 cmets 中所述)自动为几页执行此操作。我的项目是一个网络蜘蛛,根据设计,它需要定位多个页面,在这些页面中,我要访问的内容在 JavaScript 填充所有内容之前不可用。

【问题讨论】:

    标签: javascript html rendering


    【解决方案1】:

    WebDev toolbarFirebug 等 Firefox 插件具有“查看生成的源代码”等选项。

    就时间而言,您唯一的选择就是拥有一个 javascript 代码的 sn-p。您可以在页面加载时尽快设置开始时间,并在页面完成时再次检查(dom-ready 或页面完全下载)。但是,它将是高度可变的,如果您尝试对其进行计时以提高速度(这很高兴知道并这样做) - 只需获取 Firebug + Yslow 会更有用。

    【讨论】:

    • 这两个都应该是开发人员的武器库的一部分。 +1
    【解决方案2】:

    在 Firefox 中,您可以通过等待浏览器完成渲染,然后按 ctrl-A 选择页面上的所有内容,最后从右键菜单中选择“显示选择源”来获得最终渲染的 DIV。

    这显示了页面的操作/填充的 DOM 代码。

    【讨论】:

    • 谢谢。这有我正在寻找的信息。您知道是否有一种方法可以使我自动化并输出到(例如)文本文件?我想在几个页面上解析来自这个源的各种东西,并且手动将它们复制到文件中进行解析是不切实际的耗时。
    • 您可以查看用于自动化 Web 测试的 Selenium Web 测试框架 (seleniumhq.org)。我不知道它是否包含写出 DOM 源的东西,但我认为机会还不错。
    • 我一直在玩 Selenium,它看起来像是我可以用它来做我正在寻找的东西。它不是为这项任务而设计的,所以我必须解决其中的一些问题,但它肯定有能力做我需要做的事情。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多