论文部分内容阅读
网络爬虫是搜索引擎的关键技术之一。近年来,随着Web2.0的兴起,AJAX技术在Web开发中的大量应用,使得网页的用户体验得到了很大的提高,但同时传统网络爬虫的缺陷日益显著,极大影响了搜索引擎的查询结果。
本文旨在设计一种能处理javascript/Ajax网站的爬虫系统。
为了能处理javascript/Ajax网站,首先必须了解页面的基本获取方式,页面代码的特性,以及传统页面展现方式与异步页面呈现方式的不同,其次,了解javascript/Ajax技术的特点,以及传统方式无法解决此问题的原因。我们期望达到以下几个目的:1、尽可能多的获取到与链接有关的javascript代码。2、能正确处理页面中的javascript代码。3、能准确获取到异步链接,并能进行下一层抓取。
文中首先尝试使用javascirpt引擎的方式解析网页中包含的javascirpt代码,期望以此来解决链接丢失的问题。但对于DOM对象处理的缺陷,使得该方案在处理Ajax网站时表现出了不足。
为此本文创造性的将IE浏览器作为爬虫的服务器使用,通过浏览器强大的页面处理能力帮助我们解决DOM对象的问题。通过测试,我们发现,该方案尽管功能强大,但效率上却有很大的缺陷。
于是在本文最后又提出了一套整合的方案,合理的利用两种类型的爬虫,使得爬虫的在功能和效率上都得到了一定的提高。并在文章的最后对三种方案进行了对比测试。