论文部分内容阅读
互联网从诞生到现在,已经聚集了海量的信息资源,然而这些信息在网络中的存放杂乱无章,使人们在获取信息的时候遇到困难,搜索引擎是的产生就是为了帮助人们更好地从互联网中检索信息,它已经成为互联网中最不可或缺的工具。本文在学习了网络爬虫程序的工作原理、遍历策略、网页排序算法、DeepWeb等知识的基础上,设计并实现了一个能自动从目标网站中提取各种页面的系统。网络爬虫程序是搜索引擎中用于下载Web页面的重要组成部分,随着互联网技术的不断发展变化,对于如何增强网络爬虫程序的工作能力来适应变化的Web应用程序已经成为国内外学习研究的热点。传统的网络爬虫程序只能抓取互联网表层的可索引页面,它们忽视了大量的必须经过动态技术才能获取的处于网络深层的页面,因此研究面向动态页面的网络爬虫系统非常具有实用价值。
本文根据动态页面产生的多种原因,如利用HTML表单查询数据库动态生成页面、AJAX技术动态执行脚本后生成新的页面,提出了多种提取动态页面的方案,使得网络爬虫系统能够从目标网站中得到更多传统爬虫系统无法获取的Web页面。面向动态页面的网络爬虫系统使用多线程对Web页面进行同步的下载和分析,提取Web页面中的所有静态链接、表单、JavaScript脚本代码以及JavaScript页面事件,通过模拟用户填写表单和触发事件执行脚本来获取页面中的动态链接,并将提取的所有链接使用布隆过滤器存储,将链接通过多个互不相关的hash函数映射到一快内存的多个比特位上,能够迅速地判断链接是否重复,大大地提高了效率,最后对该系统进行了全面的测试,验证了系统实现的正确性和稳定性。