【问题标题】:JS or any other language hook on loading resources in a HTML pageJS 或任何其他语言挂钩在 HTML 页面中加载资源
【发布时间】:2011-01-20 01:43:55
【问题描述】:

我想要完成的事情:

  1. HTTP GET 网站内容(比如 google.com)
  2. 然后使用某种钩子或过滤器来捕获此页面尝试加载的所有资源(例如 CSS 文件、所有 JavaScript 文件、所有图像、所有 iframe 等)

首先想到的是解析下载的页面/代码并提取所有可能链接到资源的标签,但是它们非常多,其中一些很棘手,例如 CSS 中声明的图像背景,示例:

body {background-image:url('paper.gif');} 

另外,我需要捕获所有打算通过 JavaScript 加载的资源。例如,有一个 JS 函数将生成一个 URL,然后解释它以加载资源。

出于这个原因,我认为我需要某种钩子或过滤器/监视器。

编程语言无关紧要(尽管在 Unix 机器上工作会很好)。

更新:这需要一个自动化的解决方案。

谢谢。

【问题讨论】:

    标签: c# php javascript html dhtml


    【解决方案1】:

    我假设您正在寻找一个完全自动化的解决方案。

    解析文件有几种方法(在所有主要的脚本语言、基于 wget 的语言和其他语言中),但我知道没有一种方法可以真正解释 JavaScript(因为这就是即将到来的到)。

    我认为您唯一的选择是在您的 Unix/Linux 机器上设置一个 Firefox(或其他现代浏览器)实例,为其提供一个 URL 并监视/阻止它尝试建立的所有传出连接。在客户端 PC 上,这是 Firebug 中“网络”选项卡的内容。我不知道这是否可以在不实际重写浏览器部分的情况下实现自动化以及在多大程度上实现自动化。也许Selenium RC 或 Selenium 套件中的其他工具之一是一个起点。

    【讨论】:

    • 我不是这方面的专家,但也许最好使用 Gecko 或 WebKit 库/引擎来达到这个目的?
    • @Heavy Bytes,可能是的(我自己不是浏览器内部的专家)。但是,我很确定 JavaScript 引擎是独立于渲染引擎的部分,这可能会导致构建应用程序出现问题。
    【解决方案2】:

    最简单的方法是编写一个Fiddler 插件。

    【讨论】:

      【解决方案3】:

      您始终可以设置像 fiddler 这样的代理并查看流量 - 除了对页面的初始调用之外的任何内容都是被请求的额外资源。

      【讨论】:

      • 没有解决如何自动获取页面和解释 JavaScript 的问题。
      • 嗯,问题在于它应该是一个应用程序。不是我会手动运行。我需要获取页面的内容,然后拥有这些内容 - 使用它。如果我们要在浏览器路径中运行,我需要 JS 之类的东西来收集链接。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      • 2014-11-20
      相关资源
      最近更新 更多