论文部分内容阅读
万维网的应用已经渗透到人们生活的各个角落,信息量更是以爆炸式的速度在膨胀,如何快速有效地提取有用信息成为一个巨大的挑战。搜索引擎能够帮助人们快速定位到对自己有用的信息,网络爬虫是搜索引擎的基础,同时也是安全扫描程序的必需模块。网络爬虫爬行的条件是能自动发现网页中的URL信息,因此,完善的页面解析算法可以更好的提高爬虫的网页覆盖率。目前,大多数网络爬虫采用页面静态分析算法,利用页面A标签和正则表达式匹配来获取页面中URL信息,然而,近些年随Web开发技术的发展,很多网站采用动态URL技术,普通的爬虫对此无能为力,造成越来越多的网络爬虫陷阱。
本文首先介绍了网络爬虫在动态URL解析方面的研究情况和相关理论,总结和分析了动态URL信息在网页中的存在形式,以及其形成的必然原因。然后,通过对浏览器原理的深入研究,基于JavaScript解析引擎实现了隐藏URL信息的获取引擎,解决了目前网络爬虫在解析JavaScript脚本动态生成URL链接方面的网络暗角,并提出了一种改进方案,采用占位符提取动态URL模板,提高了传统的自动填表多次提交表单方案的效率和完备性问题。
本文设计实现了一个可供传统网络爬虫通用的交互式动态URL获取引擎模块。该模块基于浏览器运行原理,模拟浏览器加载网页页面,提取加载后的HTMLDOM代码,并模拟用户交互式操作,获取Web应用与用户交互过程中产生的动态URL信息;最后为了集成到传统网络爬虫中,本文还设计了基于多线程网络爬虫的高效接口模块。
本文从引擎的设计思路、结构、运行机制、交互式事件模拟以及具体实现等方面进行了详细的阐述。
最后,为了能够更好的验证本模块在网络爬虫中的实际应用价值,本文还将引擎集成到了开源爬虫中进行测试。试验结果表明,本文的方法可以有效的提取HTML页面中隐含在JS脚本中的URL信息,满足传统爬虫所要求的性能,具有一定的实用价值。