当前位置: 首页 > 专利查询>中山大学专利>正文

一种基于WebKit浏览器引擎的动态页面数据采集方法技术

技术编号:6605442 阅读:726 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于WebKit浏览器引擎的动态页面数据采集方法,包括:向服务器端发送http请求,接收原始页面数据,构建DOM树,所述发送http请求,接收原始页面数据,解析js及构建DOM树由WebKit底层实现;针对不同的网站,维护相应的配置文件,配置文件中包含触发相应事件的js代码,以字符串的形式传递给WebKit提供的js执行接口,由WebKit根据事件相应,更新DOM树;调用WebKit的I/0接口,将DOM树转化成html格式,以字符串的形式输出。本发明专利技术技术方案通过配置文件的方式实现了可扩展性的需求,实现了浏览器和服务器之间的异步并行处理,减轻了服务器端的负担,增加了用户体验。

【技术实现步骤摘要】

本专利技术涉及计算机信息
,具体涉及到基于WebKit浏览器引擎的动态页面数据采集方法
技术介绍
随着 Web2. 0 的兴起,AJAX (Asynchronous JavaScript and XML,异步 Javakript 和XML)技术风靡一时,客户端与服务器端异步交互的方式既减小了服务器端的压力,而且带来了更好的用户体验。然而,使用该技术产生的大量动态网页给网络数据获取造成了新的难题,传统的用于采集静态网页的Web数据采集工具如网络爬虫抓取的内容远少于页面呈现的内容,大量动态网页中的有用信息无法获取使得以网络数据为主要处理对象的工作无法顺利进行,严重影响了网络内容监控,网络数据挖掘等学科的发展。因此,如何改进传统的Web数据采集系统,使之支持动态页面解析,已经成为了当前信息采集技术的一个研究热点。互联网领域的专家学者们对此课题做了不少有益的研究尝试,提出了有建设性的思路和解决方案。当前动态页面采集的主要方法大体有两种 一是利用开源浏览器接口(如Firefox),以编写插件的形式对浏览器输出结果进行采集; 二是利用现有的脚本解释引擎(如SpiderMonkey、Rhino等)根据信息采集的需要对相关 DOM(DocumentObject Model,文档对象模型)对象进行绑定,对输出结果进行采集。然而, 目前的研究也存在一些问题一是现在的研究主要面向设计大规模网络爬虫爬取动态网页的通用方法,对于一些有针对性的定向的数据采集(如特定论坛或商业网站商品信息的采集)支持效果不够理想;二是大部分方案实现较为复杂,并不适用于小规模即时的数据采集需求。基于以上原因,本文在一个简单的爬取类论坛结构数据的爬虫基础上进行了扩展,提出了一种基于WebKit浏览器引擎的采集动态页面数据方案。通过采用Qt ( 一个跨平台的C++图形用户界面库)框架,使得程序有较好的可靠性及跨平台性;通过将接口与配置文件分离的方式,使程序具有很好的可扩展性;针对复杂的网络环境设计了超时等待机制, 程序的鲁棒性有了很大的提高。当前动态页面采集的主要方法大体有两种一是利用开源浏览器接口(如 Firefox),以编写插件的形式对浏览器输出结果进行采集;二是利用现有的脚本解释引擎 (如SpiderMonkeyjhino等)根据信息采集的需要对相关DOM对象进行绑定,对输出结果进行采集。目前主要面向设计大规模网络爬虫爬取动态网页的通用方法,对于一些有针对性的定向的数据采集(如特定论坛或商业网站商品信息的采集)支持效果不够理想;其次大部分方案实现较为复杂,并不适用于小规模即时的数据采集需求。
技术实现思路
本文在一个简单的爬取类论坛结构数据的爬虫基础上进行了扩展,提出了一种基于WebKit浏览器引擎的采集动态页面数据方案。通过采用Qt框架,使得程序有较好的可靠性及跨平台性;通过将接口与配置文件分离的方式,使程序具有很好的可扩展性;针对复杂的网络环境设计了超时等待机制,程序的鲁棒性有了很大的提高。本专利技术实施例提供了,包括向服务器端发送http请求,接收原始页面数据,构建DOM树,所述发送http请求, 接收原始页面数据,解析js及构建DOM树由WfebKit底层实现;针对不同的网站,维护相应的配置文件,配置文件中包含触发相应事件的js代码,以字符串的形式传递给WebKit提供的js执行接口,由WebKit根据事件相应,更新DOM 树;调用WfebKit的I/O接口,将DOM树转化成html格式,以字符串的形式输出。所述方法采用三线程方式实现数据接收,具体包括线程一负责正常的数据接收,监听IoadFinished信号,若正常接收则终止线程二,设置接收标志位为成功状态;线程二为定时器线程,该线程监听接收时间,若超过预定接收时间即认为超时,终止正常接收线程,并且设置接收标志位为失败状态;线程三对外提供接口,提供接收标志状态,后续步骤可通过此标志位进行相应的处理。所述触发网页事件更新DOM树包括线程一运行配置文件中js代码,模拟触发事件的操作,并且循环等待服务器数据;若接收数据完成则唤醒线程二,对外提供接收状态指示接口 ;线程二负责等待线程一数据完成更新D0M。本文给出了一个基于WebKit浏览器引擎采集动态页面数据的方案。对整体的结构及关键流程做了详细的说明。经过在多个论坛及商品销售网站上进行测试,验证了该方法可行高效,并且通过设计实现超时等待机制加强了程序的健壮性,可以应对较为复杂的网络环境。通过配置文件的方式实现了可扩展性的需求。其成功之处就在于其构建了更为动态和响应更为灵敏的Web应用,实现了浏览器和服务器之间的异步并行处理,既减轻了服务器端的负担又带来了独特的用户体验。对于即时的中小规模的动态页面数据采集有很好的实用借鉴价值。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1是现有技术中的Web应用模型结构示意图;图2是本专利技术实施例中的AJAX应用模型结构示意图;图3是本专利技术实施例中的WebKit浏览器内核结构示意图;图4是本专利技术实施例中的QWebView、QffebPage及QWebFrame类之间的关系结构图;图5是本专利技术实施例中的类论坛结构数据采集体系结构示意图;图6是本专利技术实施例中的动态页面采集模块结构示意图;图7是本专利技术实施例中的QWebpage类接口示意图;图8是本专利技术实施例中的数据接收流程图;图9是本专利技术实施例中的触发网页事件流程图。具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。本文在一个简单的爬取类论坛结构数据的爬虫基础上进行了扩展,提出了一种基于WebKit浏览器引擎的采集动态页面数据方案。通过采用Qt框架,使得程序有较好的可靠性及跨平台性;通过将接口与配置文件分离的方式,使程序具有很好的可扩展性;针对复杂的网络环境设计了超时等待机制,程序的鲁棒性有了很大的提高。2. IAJAX的定义及关键技术AJAX 是 Asynchronous JavaScript and XML (异步 JavaScript 和 XML)的缩写, 由著名用户体验专家Jesse-James Garrett于2005年首先提出。AJAX不是一种新技术, 而是一系列已经被广泛应用的Web相关技术的组合,如XML、CSS、DOM、XMLHttpRequest、 JavaScript等。其成功之处就在于其构建了更为动态和响应更为灵敏的Web应用,实现了浏览器和服务器之间的异步并行处理,既减轻了服务器端的负担又带来了独特的用户体验。标准的AJAX包括(1)采用XHTML和CSS标准化显示(2)采用DOM实现动态显示和交互(3)采用XML和XSLT进行数据交互和处理(4)采用XMLHttpRequest进行异步数据本文档来自技高网
...

【技术保护点】
1.一种基于WebKit浏览器引擎的动态页面数据采集方法,其特征在于,包括:向服务器端发送http请求,接收原始页面数据,构建DOM树,所述发送http请求,接收原始页面数据,解析js及构建DOM树由WebKit底层实现;针对不同的网站,维护相应的配置文件,配置文件中包含触发相应事件的js代码,以字符串的形式传递给WebKit提供的js执行接口,由WebKit根据事件相应,更新DOM树;调用WebKit的I/O接口,将DOM树转化成html格式,以字符串的形式输出。

【技术特征摘要】

【专利技术属性】
技术研发人员:李飞燕陈曦杨艾琳
申请(专利权)人:中山大学
类型:发明
国别省市:81

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1