论文部分内容阅读
网络爬虫按照一定规则抓取Web信息,是搜索引擎技术的重要组成部分。随着Web2.0的兴起,在网页开发中大量的运用Ajax技术。区别于传统网页,Ajax技术使用异步的方式向服务器发送请求,并根据响应更新页面。Ajax极大地降低了服务器的负载,同时也提高了用户体验。与此同时,Ajax技术部分更新HTML页面的方式也对传统爬虫技术提出了严峻挑战。本文在介绍分析传统爬虫爬行原理与结构的基础上,结合动态网络爬虫需要解决的问题,设计并实现了一种可以抓取动态网页数据的网络爬虫系统。本文完成的主要工作如下。首先,在前人关于动态网络爬虫模型的研究基础上,基于图结构的思想,经过改进,提出了基于状态转移的动态网络爬虫模型,从而使用状态的转移过程模拟动态事件触发对网页结构的改变。并结合动态爬虫的需求和真实的网络环境,在网页去噪、新状态去重、新状态抓取等方面对算法模型进行了细化改进。其次,本文根据该模型,使用调用浏览器内核以及本地构建JavaScript解析环境两种方法,设计实现了针对动态网页数据的爬虫系统。在保持传统爬虫功能的基础上,添加了对动态数据抓取的支持。最后,本文通过对真实网页的抓取实验,比较了两种方法与传统爬虫的优势和不足。验证了该系统的可行性和有效性。