本申请提供了一种基于浏览器内核的网页爬取方法、网页爬取装置及包含该装置的浏览器。所述方法包括:从用户获取初始URL;利用浏览器内核从Web服务器获取所述初始URL所对应网页的源代码文件;基于所述源代码文件生成相应的DOM树;遍历所述DOM树以获取所述网页中包含的静态URL和动态URL;以及将所述静态URL和动态URL加入待爬URL队列中。本申请的网页爬取方法能够支持各种网页标准,兼容各种不规范的网页;通过事件触发和HOOK手段能够更多、更准确的爬取URL。
【技术实现步骤摘要】
基于浏览器内核的网页爬取方法、装置及包含该装置的浏 Il^r OS.SaL 口口
本申请涉及信息检索领域,尤其涉及基于浏览器内核的网页爬取方法、网页爬取装置及包含该网页爬取装置的浏览器。
技术介绍
互联网(World Wide Web,简称Web)就是处在世界各地的计算机互相连接而成的一个计算机网络。网站的浏览者(用户)坐在家中查看各种网站上的内容,实际上就是从远程的计算机中读取了一些内容,然后在本地计算机上显示出来的过程。因此,提供内容信息的计算机就称为“Web服务器”,用户使用“浏览器”,例如集成在Windows操作系统中的Internet Explorer,就可以通过网络取得Web服务器上的文件以及其他信息。浏览器一般由两部分组成:用户界面和内核,其中,用户界面主要用于与用户进行交互,例如等,内核作为浏览器的核心,主要负责取得网页的内容(HTML、XML、图像等)、整理讯息(例如加入CSS等),计算网页的显示方式,解析Javascript语言,执行Javascript语言代码来实现网页的动态效果等。当用户的计算机联入互联网后,用户打开浏览器并在地址栏中输入某个网站的地址,即URL (Uniform Resource Locator,统一资源定位符),浏览器内核就会按照预定的通信协议,例如HTTP协议,向Web服务器发送请求,该请求中携带有用户提供的URL,Web服务器响应于浏览器内核的请求,将与所述URL对应的信息传送到浏览器内核,浏览器再将该信息呈现给用户。如何通过浏览器有效地从Web服务器获取所需的网页成为一个巨大的挑战。目前浏览器主要基于以下两种方案从Web服务器获取用户所需的网页。第一,正则匹配方案。在正则匹配方案中,浏览器内核首先从Web服务器获取URL对应的网页的源代码文件,该源代码文件通常是采用标记语言,例如HTML语言编写的。然后,将该源代码文件作为一个长字符串,用一系列预先定义的、被认为可以匹配出URL的正则表达式分别去匹配该字符串。如果匹配成功,则认为匹配到的是URL。然而,正则匹配方案无法处理动态构造的URL,例如:id=123;url= “http://www.test, org/forum.php?id=,,+id;此时正确的URL 为 “http://www.test, org/forum.php?id=123”,正则表达式则无法处理。第二,HTML解析库方案。HTML解析库是建立在正则表达式基础上的,其首先通过正则表达式把网页转换成一系列标签,形成标签树,再遍历标签树上的各个标签,找出可能包含URL的标签,判断 标签是否有URL。但是,HTML解析库方案也不能处理动态URL的情况。例如:<A href =,,javascript: window, open ( ‘http://www.test, com,),,>URL〈/A>基于HTML解析库的爬取方法,往往会把A标签的href属性的值作为一个发现的URL返回。
技术实现思路
根据本申请的第一方面,提供了一种基于浏览器内核的网页爬取方法,包括:从用户获取初始URL ;利用浏览器内核从Web服务器获取所述初始URL所对应网页的源代码文件;基于所述源代码文件生成相应的DOM树;遍历所述DOM树以获取所述网页中包含的静态URL和动态URL ;以及将所述静态URL和动态URL加入待爬URL队列中。根据本申请的第二方面,提供了一种网页爬取装置,包括:接口单元,从用户获取初始URL ;浏览器内核,响应于所述接口单元的调用,从Web服务器获取所述初始URL所对应网页的源代码文件,并基于该源代码文件生成相应的DOM树;URL收集单元,遍历所述DOM树以获取所述网页中包含的静态URL和动态URL ;存储单元,从所述URL收集单元接收并存储所述静态URL和动态URL。根据本申请的第三方面,提供了一种包含上述网页爬取装置的浏览器。根据本申请的网页爬取方法和装置,能够支持各种网页标准,兼容各种不规范的网页;通过事件触发和HOOK手段能够更多、更准确的爬取URL。【附图说明】图1示出了根据本申请第一方面的基于浏览器内核的网页爬取方法的流程图;图2示出了根据本申请的第二方面的一个实施方案的网页爬取装置的方框图;图3示出了根据本申请的第二方面的另一个实施方案的网页爬取装置的方框图。【具体实施方式】下面将参照图1详细描述根据本申请的第一方面的基于浏览器内核的网页爬取方法。如图1所示,在步骤1001,获取用户输入的初始URL。优选地,在获取到用户输入的初始URL后将该URL放入待爬URL队列中,然后,从待爬URL队列中获取所述初始URL作为待爬的URL。接下来,在步骤1002,利用浏览器内核从Web服务器获取所述初始URL所对应网页的源代码文件。可以理解,获取到待爬的URL后,可以调用浏览器内核基于预定的通信协议(例如HTTP协议)向Web服务器发出访问所述初始URL所对应网页的请求,其中所述请求中包含所述初始URL,Web服务器针对浏览器内核的请求做出响应。所述响应的内容通常包括:响应码、响应头、以及请求访问的URL所对应网页的源代码文件。响应码是指由三位十进制数字组成、出现在由Web服务器发送的响应的第一行的状态码。响应头允许服务器传递不能放在状态行的附加信息,主要用来描述服务器的信息和Request-URI进一步的信息。本领域技术人员可以理解的是,当浏览器内核所发出的请求没有被Web服务器接成功接收、理解、并接受时,Web服务器不会在发送响应码和响应头的同时,将请求访问的URL所对应网页的源代码文件发送到浏览器内核。例如,当用户输入一个错误的URL时,Web服务器会发出响应码“404”,表明请求失败,请求所希望得到的资源未在服务器上发现。此时,Web服务器不会将请求访问的URL所对应网页的源代码文件发送到浏览器内核。在这种情况下,用户需要输入新的URL,以便从服务器获取所需的信息。再如,当被请求的资源已永久移动到新位置时,Web服务器会向浏览器内核发送响应码“301”,并在响应头“Location”中指明新的URL地址。例如,响应头Location:www.baidu.com,其含义为该网页需要跳转到www.baidu.com,需要跟随跳转才能得到真正的页面。此时,需要调用浏览器内核以新的URL “www.baidu.com”再次向Web服务器发出请求,才可获得所需的网页。优选地,在从Web服务器获取到所述初始URL所对应网页的源代码文件(步骤1002)后利用浏览器内核对该源代码文件进行解析,并且以Η00Κ方式获取对所述源代码文件进行解析的过程中所述浏览器内核主动访问的URL,并将获取的URL放入待爬URL队列中。例如,浏览器内核在对从Web服务器获取的网页的源代码文件例如HTML文件进行解析的过程中,会自动运行该HTML文件中的Javascript脚本,作为运行结果而主动访问相应的URL,例如运行某个Javascript脚本的结果为访问某个URL以获取该URL处的资源,例如动态广告。根据本申请,可以以Η00Κ方式,即使用浏览器内核提供的API函数(即Η00Κ函数),截获浏览器内核在解析HTML文件的本文档来自技高网...
【技术保护点】
一种基于浏览器内核的网页爬取方法,包括:从用户获取初始URL;利用浏览器内核从Web服务器获取所述初始URL所对应网页的源代码文件;基于所述源代码文件生成相应的DOM树;遍历所述DOM树以获取所述网页中包含的静态URL和动态URL;以及将所述静态URL和动态URL加入待爬URL队列中。
【技术特征摘要】
1.一种基于浏览器内核的网页爬取方法,包括: 从用户获取初始URL ; 利用浏览器内核从Web服务器获取所述初始URL所对应网页的源代码文件; 基于所述源代码文件生成相应的DOM树; 遍历所述DOM树以获取所述网页中包含的静态URL和动态URL ;以及 将所述静态URL和动态URL加入待爬URL队列中。2.如权利要求1所述的方法,其中,遍历所述DOM树以获取所述网页中包含的静态URL和动态URL的步骤包括:从所述DOM树上的标签的属性获取所述静态URL ;以及通过触发所述DOM树上的标签的事件并执行与所述事件绑定的事件处理代码,从而以HOOK方式截获作为执行所述事件处理代码的结果所访问的网页的动态URL。3.如权利要求2所述的方法,进一步包括: 在利用浏览器内核从Web服务器获取所述初始URL所对应网页的源代码文件之前,调用浏览器内核向Web服务器发出访问所述初始URL所对应网页的请求,其中所述请求中包含所述初始URL。4.如权利要求3所述的方法,进一步包括: 以HOOK方式拦截所述请求以从中分离出所述初始URL,并将所述初始URL加入到待爬URL队列中。5.如权利要求1至4中·任一项所述的方法,进一步包括: 从Web服务器获取到所述初始URL所对应网页的源代码文件后利用浏览器内核对该源代码文件进行解析,并且以HOOK方式获取对所述源代码文件进行解析的过程中所述浏览器内核主动访问的URL。6.一种网页爬取装置,包括: 接口单元,从用户获取初始URL ; 浏览器内核,响应于所述接口单元的调用,从We...
【专利技术属性】
技术研发人员:付俊,张峰,杨光华,
申请(专利权)人:中国移动通信集团公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。