代码之家  ›  专栏  ›  技术社区  ›  Alexandru Luchian

JS或任何其他语言钩子在HTML页面中加载资源

  •  1
  • Alexandru Luchian  · 技术社区  · 15 年前

    我要做的是:

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

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

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

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

    因此,我认为我需要一些钩子或过滤器/监视器。

    编程语言并不重要(尽管在Unix机器上工作会很好)。

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

    谢谢您。

    3 回复  |  直到 15 年前
        1
  •  1
  •   Pekka    15 年前

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

    有几种解析文件的方法(在所有主要的脚本语言中,基于wget和其他语言),但我所知道的任何一种方法实际上都不能 解释 javascript(因为这就是我们要讨论的问题)。

    我认为你唯一的选择就是在你的unix/linux设备上建立一个firefox(或其他现代浏览器)实例,给它一个URL,观察/阻止它试图建立的所有输出连接。在客户机PC上,这是Firebug中“net”选项卡的内容。我不知道,如果不重写浏览器的某些部分,这是否可以实现自动化以及在多大程度上实现自动化。也许吧 Selenium RC 或者,Selenium套件中的另一个工具就是一个起点。

        2
  •  1
  •   SLaks    15 年前

    最简单的方法是写一个 Fiddler 加载项。

        3
  •  0
  •   Oded    15 年前

    你可以设置一个代理,就像 fiddler 看看流量——除了页面的初始调用之外,其他的都是请求的额外资源。