Skip to main content
QUICK REVIEW

[论文解读] A Brief History of Web Crawlers

Seyed M. Mirtaheri, Mustafa Emre Dinçtürk|arXiv (Cornell University)|May 5, 2014
Web Data Mining and Analysis参考文献 55被引用 32
一句话总结

本文全面综述了从传统网络爬虫到深层网络及富互联网应用(RIA)爬虫的演进过程,分析了其架构、设计目标与挑战。文章提出了 RIA 爬虫的分类体系,基于完整性与状态覆盖等标准评估其性能,并识别出若干开放性研究问题,如基于模型的爬取、可扩展性以及动态网页应用中的组件检测。

ABSTRACT

Web crawlers visit internet applications, collect data, and learn about new web pages from visited pages. Web crawlers have a long and interesting history. Early web crawlers collected statistics about the web. In addition to collecting statistics about the web and indexing the applications for search engines, modern crawlers can be used to perform accessibility and vulnerability checks on the application. Quick expansion of the web, and the complexity added to web applications have made the process of crawling a very challenging one. Throughout the history of web crawling many researchers and industrial groups addressed different issues and challenges that web crawlers face. Different solutions have been proposed to reduce the time and cost of crawling. Performing an exhaustive crawl is a challenging question. Additionally capturing the model of a modern web application and extracting data from it automatically is another open question. What follows is a brief history of different technique and algorithms used from the early days of crawling up to the recent days. We introduce criteria to evaluate the relative performance of web crawlers. Based on these criteria we plot the evolution of web crawlers and compare their performance

研究动机与目标

  • 追溯网络爬虫从早期内容索引到现代 RIA 爬取的历史发展进程。
  • 识别并分类深层网络与 RIA 爬虫的核心组件及设计策略。
  • 建立评估标准(如完整性、状态覆盖度与效率),用于比较爬虫性能。
  • 突出 RIA 爬取中的开放研究挑战,包括基于模型的探索与状态爆炸的缓解方法。
  • 基于其策略、DOM 处理方式与事件处理技术,提出 RIA 爬虫的分类体系。

提出的方法

  • 将爬取建模为图探索问题,其中网页应用表示为有向图,节点为应用状态,边为状态转移。
  • RIA 爬虫使用带有 JavaScript 引擎的虚拟浏览器,以执行客户端代码并渲染动态的 DOM 状态。
  • DOM-Seen 模块通过哈希比较或编辑距离,检查是否已观察过先前的状态,以避免冗余探索。
  • 事件提取器从 DOM 中识别客户端事件(例如 JavaScript 处理程序),从而实现超越 URL 的状态转移发现。
  • 深度优先搜索、广度优先搜索以及基于启发式的优先策略(如基于代码覆盖度或 DOM 影响)用于指导事件选择。
  • 高级方法采用最小链分解、乡村邮差求解器及概率模型等技术,以优化状态覆盖度并减少冗余遍历。

实验结果

研究问题

  • RQ1网络爬虫的架构如何从基于传统 URL 的爬取演进为处理动态 RIA 状态?
  • RQ2深层网络与 RIA 爬虫的关键设计组件与策略有哪些区别?
  • RQ3如何在完整性、状态覆盖度与效率等维度上客观评估爬虫性能?
  • RQ4RIA 爬取中的主要开放挑战是什么,特别是在基于模型的探索与可扩展性方面?
  • RQ5如何检测独立的用户界面组件(如小部件),以减少状态爆炸并提升爬取效率?

主要发现

  • RIA 爬虫必须处理不改变 URL 的状态变化,因此需要依赖基于 DOM 的状态检测,而非基于 URL 的导航。
  • 传统爬取策略在 RIA 上失效,因为其依赖于 URL 变化,而客户端状态转移并不总伴随 URL 变化。
  • 如 DOM 哈希与编辑距离比较等技术,在 RIA 爬虫中有效检测先前已见的应用状态。
  • 基于启发式的策略(如优先处理高代码覆盖度或结构影响的事件)可提升状态覆盖度并减少冗余探索。
  • 由于潜在的指数级状态爆炸,可扩展性仍是主要挑战,尤其在具有大量事件驱动转移的复杂 RIA 中。
  • 没有单一爬虫策略能在所有指标上实现最优性能;完整性、效率与可扩展性之间的权衡在 RIA 爬取中是固有的。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。