基于用户界面状态改变的Ajax动态网页爬取算法研究
本文关键词:基于用户界面状态改变的Ajax动态网页爬取算法研究,由笔耕文化传播整理发布。
【摘要】:现在的Web应用程序中,由于JavaScript口动态文档对象模型具有的高交互性和快速的应答能力,使得它们在Web应用程序端得到越来越广泛的应用。近年来随着Web 2.0的兴起,在网页开发中也开始大量的运用Ajax技术。传统的Web站点中每一个URL标志一个静态页面,而在Ajax应用中,一个页面可能有很多状态变化,这种状态变化并不能通过页面的URL体现出来,而是通过文档对象模型(DOM)结构的动态变化来展现,所以对Ajax程序的爬取不同于对传统的网页爬取。现有的一些对Ajax网页爬取的算法存在爬取准确度不高或者状态爆炸等的问题,本论文结合Ajax动态网页的特点,设计并实现了一个可以爬取Ajax动态网页的爬取系统。本论文提出了基于用户界面状态改变的Ajax动态网页爬取算法,通过使用算法中状态的转换来模拟动态网页中通过触发动态事件造成的网页结构的改变。该算法首先初始化空的状态图及爬行队列,通过给定的URL获取初始页面的DOM树,通过遍历DOM树,算法识别出能够引起状态改变的候选可点击元素,并依次触发这些候选元素下的事件,然后进行状态比较,发现新的可能到达的状态,逐步更新状态图。为了能够触发同一状态下对应的所有绑定事件,该算法实现了状态回退的方法,用来判别某个状态下是否存在未被检查到的可点击元素存在。为了提高对Ajax动态网页爬取的性能,本文又提出了并行爬取Ajax动态网页的算法。该算法采用并行爬取的方法来进行状态爬取,通过控制器来监测所有的爬取节点,每个爬取节点负责自己对应的状态机,从浏览器池中运行自己的浏览器实例。控制器采用动态分配任务的方法给所有参与的爬取节点合理分配爬取任务,当爬取节点发现一个新的状态后,如果在先前的状态下还有未被识别的候选可点击元素存在,那么会沿着这个未被识别的状态,分配另一个线程新的线程进行探索,这种方法下就不需要浏览器重新加载和状态回退,极大的缩短了算法爬取的时间。最后,论文把算法应用于一些实际的Web动态网页中,通过实验对算法进行了评估和分析,验证了算法的可行性和有效性。
【关键词】:Ajax 动态网页 文档对象模型 状态图 并行爬取
【学位授予单位】:北京交通大学
【学位级别】:硕士
【学位授予年份】:2016
【分类号】:TP393.092
【目录】:
- 致谢5-6
- 摘要6-7
- ABSTRACT7-11
- 1 引言11-15
- 1.1 选题背景与意义11-12
- 1.2 国内外相关研究12-13
- 1.3 本文研究内容与结构13-15
- 1.3.1 研究内容概述13-14
- 1.3.2 组织结构14-15
- 2 Ajax动态网页15-29
- 2.1 HTML DOM15-17
- 2.2 Ajax原理17-18
- 2.3 Ajax动态网页示例18-23
- 2.4 爬取模型中的相关概念23-26
- 2.4.1 用户界面状态23
- 2.4.2 状态转换23
- 2.4.3 可点击元素23-24
- 2.4.4 状态转换图24-26
- 2.5 爬虫相关工具介绍26-28
- 2.5.1 Selenium WebDriver26
- 2.5.2 Jsoup解析工具26-28
- 2.6 本章小结28-29
- 3 Ajax动态网页爬取算法29-40
- 3.1 爬取结构图29
- 3.2 爬取算法描述29-39
- 3.2.1 初始化32
- 3.2.2 检测可点击元素32-34
- 3.2.3 状态比较34-36
- 3.2.4 DOM树增量处理36-37
- 3.2.5 状态回退37-39
- 3.3 本章小结39-40
- 4 Ajax动态网页并行爬取算法40-68
- 4.1 并行爬取结构图40-41
- 4.2 算法描述41-46
- 4.2.1 浏览器池42-44
- 4.2.2 自上而下追踪44
- 4.2.3 多节点爬取44-45
- 4.2.4 爬虫分配函数45-46
- 4.3 系统结构设计及实现46-56
- 4.3.1 系统整体结构46-52
- 4.3.2 功能设计52-56
- 4.4 系统测试及结果分析56-67
- 4.4.1 有效性测试56-60
- 4.4.2 表单测试60-61
- 4.4.3 HTML解析测试61-63
- 4.4.4 并行爬取实验63-67
- 4.5 本章小结67-68
- 5 总结与展望68-70
- 5.1 总结68-69
- 5.2 展望69-70
- 参考文献70-73
- 作者简历及攻读硕士学位期间取得的研究成果73-75
- 学位论文数据集75
【相似文献】
中国期刊全文数据库 前10条
1 张玉孔;;变量传递在ASP动态网页中的应用分析[J];计算机系统应用;2007年08期
2 卢新建;;试谈ASP动态网页课程的教学探索[J];电脑编程技巧与维护;2010年24期
3 杨振宇;建立动态网页──ASP应用举例[J];电脑技术;1998年06期
4 李嘉;开发动态网页的利器——ASP[J];计算机与通信;1998年Z1期
5 花飘飘;动态网页之绝招大全[J];多媒体世界;1999年06期
6 赵小林,陈英,刘然;动态网页规划与实现机制[J];北京理工大学学报;2001年01期
7 丁振凡,邹芝兰;ASP动态网页中基于日期的条件查询设计技术[J];计算机时代;2001年03期
8 罗媛;利用HTML设计动态网页[J];芜湖职业技术学院学报;2001年03期
9 杨毅;浅谈动态网页[J];成都师专学报;2002年04期
10 祝小华,杨建刚;动态网页加速技术[J];计算机应用;2002年04期
中国重要会议论文全文数据库 前4条
1 冉熙璐;段磊;吕广奕;陈珂;李钟麒;黄东兰;唐常杰;;基于对比学习的动态网页用户评论获取方法[A];第29届中国数据库学术会议论文集(B辑)(NDBC2012)[C];2012年
2 于平福;刘凯龙;;基于ASP的农业网站动态网页的设计研究[A];山西省科学技术情报学会学术年会论文集[C];2004年
3 邵辉;李芳;;基于树模型算法的动态网页信息抽取研究[A];第二届全国信息检索与内容安全学术会议(NCIRCS-2005)论文集[C];2005年
4 牟琦;;创建电子商务平台的技术解决方案[A];第十一届全国煤矿自动化学术年会论文专辑[C];2001年
中国重要报纸全文数据库 前5条
1 丁一;“活的老鼠”不好抓[N];计算机世界;2001年
2 北京 董智勇;动态网页新技术[N];中国电脑教育报;2001年
3 邹肇辉 何艳阳;动态网页打造利器——JSP[N];电脑报;2005年
4 Besky;轻松打造动态网页菜单[N];电脑报;2003年
5 慰鹏飞;走进编程之网络篇(四)[N];江苏经济报;2001年
中国硕士学位论文全文数据库 前8条
1 杨柳;基于用户界面状态改变的Ajax动态网页爬取算法研究[D];北京交通大学;2016年
2 王婷;面向授权管理的动态网页资源描述与搜集技术研究[D];解放军信息工程大学;2007年
3 段国云;基于环结构的动态网页防篡改系统的设计与实现[D];湖南大学;2012年
4 潘敏;动态网页防篡改方法与技术研究[D];南昌航空大学;2012年
5 郭常宏;借助动态网页及局域网内数据库数据调用实现电视台工作单管理及成本核算的开发调试和研究[D];山东大学;2006年
6 童罕;面向LXR的动态网页加速技术研究与实现[D];国防科学技术大学;2008年
7 李魁;大规模Web论坛采集技术研究[D];中国科学院研究生院(计算技术研究所);2006年
8 沈祥;基于FPGA的嵌入式动态网页Java Web服务器的研究与实现[D];上海交通大学;2011年
本文关键词:基于用户界面状态改变的Ajax动态网页爬取算法研究,由笔耕文化传播整理发布。
,本文编号:340787
本文链接:https://www.wllwen.com/guanlilunwen/ydhl/340787.html