一种用于抓取网站数据的方法与设备的制作方法

文档序号:6364565阅读:96来源:国知局
专利名称:一种用于抓取网站数据的方法与设备的制作方法
技术领域
本发明涉及互联网技术领域,尤其涉及一种用于抓取网站数据的技术。
背景技术
现有技术中,从数据提供网站抓取数据一般需要针对每个网站单独执行一个脚本,但是当数据提供网站数量较多时,需要维护多套抓取脚本,因此脚本维护成本较高,数据抓取效率不高;同时,在数据提供网站设置分类信息后,在其服务器端会存有最后一次设置分类信息的cookie信息,但由于传统数据抓取一般采用广度优先的抓取方式,且在同一页面中更换分类信息时,该页面链接的统一资源定位符(URL)不会改变,使得在访问同一页面的每一分类信息链接后,可能抓取到的数据为cookie信息中记录的最后一次选择的分类信息,而非所期望抓取的每一分类信息对应的目标数据,数据抓取的准确性不高。因此,如何实现网站数据的有效抓取,成为目前亟待解决的问题之一。

发明内容
本发明的目的是提供一种用于抓取网站数据的方法与设备。根据本发明的一个方面,提供了一种计算机实现的用于抓取网站数据的方法,该方法包括以下步骤:a根据所述网站拓扑结构信息,由当前根页面中的全部链接选择一个未访问链接,并获取其指向的下一层页面;b根据第一预定规 则,判断所述下一层页面是否为目标信息页面;Cl当所述下一层页面不为目标信息页面,则将所述下一层页面作为当前根页面,重复执行所述步骤a和b,直至满足第一预定条件;c2当判断所述下一层页面为目标信息页面时,抓取所述目标信息页面;其中,该方法还包括:-当满足第二预定条件,将前一根页面作为当前根页面,重复执行所述步骤a、b、cl 和 c2。根据本发明的另一方面,还提供了一种用于抓取网站数据的设备,该设备包括:第一获取装置,用于根据所述网站拓扑结构信息,由当前根页面中的全部链接选择一个未访问链接,并获取其指向的下一层页面;判断装置,用于根据第一预定规则,判断所述下一层页面是否为目标信息页面;第一循环装置,用于当判断所述下一层页面不为目标信息页面,则将所述下一层页面作为当前根页面,重复执行所述第一获取装置与所述判断装置的操作,直至满足第一预定条件;其中,该设备还包括:第一抓取装置,用于当判断所述下一层页面为目标信息页面时,抓取所述目标信息页面;
其中,所述设备还包括:第二循环装置,用于当满足第二预定条件,将前一根页面作为当前根页面,重复执行所述第一获取装置、所述判断装置、所述第一循环判断装置和所述第一抓取装置的操作。与现有技术相比,本发明根据待抓取数据网站的网站拓扑结构信息,采用深度优先遍历的方式,实现了抓取整个网站的目标数据,从而降低了多脚本数据抓取的维护成本,并保证了对目标数据抓取的准确性,提高数据抓取的效率。


通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:图1示出根据本发明一个方面的用于抓取网站数据的设备示意图;图2示出根据本发明一个优选实施例的用于抓取网站数据的示例图;图3出根据本发明另一优选实施例的用于抓取网站数据的设备示意图;图4出根据本发明又一优选实施例的用于抓取网站数据的设备示意图;图5示出根据本发明再一优选实施例的用于抓取网站数据的设备示意图;图6示出根据本发明再一优选实施例的用于抓取网站数据的设备示意图;图7示出根据本发明另一个方面的用于抓取网站数据的方法流程
图8出根据本发明另一优选实施例的用于抓取网站数据的方法流程图;图9出根据本发明又一优选实施例的用于抓取网站数据的方法流程图;图10示出根据本发明再一优选实施例的用于抓取网站数据的方法流程图;图11示出根据本发明再一优选实施例的用于抓取网站数据的方法流程图。附图中相同或相似的附图标记代表相同或相似的部件。
具体实施例方式下面结合附图对本发明作进一步详细描述。图1示出根据本发明一个方面的用于抓取网站数据的设备示意图。其中,抓取设备I包括第一获取装置111、判断装置112、第一循环装置113、第一抓取装置114及第二循环装置115。在此,抓取设备I为网络设备,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。在此,抓取设备I与网站的网络设备之间可通过任何通信方式实现通信,包括但不限于,基于3GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。以下参照图1来对抓取设备I抓取目标信息页面的过程进行详细描述:首先,第一获取装置111根据所述网站拓扑结构信息,由当前根页面中的全部链接选择一个未访问链接,并获取其指向的下一层页面。在此,所述网站拓扑结构信息包括但不限于以下任一项:
I)待抓取数据网站的首层页面的统一资源定位符(URL);2)待抓取数据网站的层数信息,即首层页面(第一层)至目标信息页面(最后一层)的层数;3)待抓取数据网站每层页面中包含链接的匹配特征信息;4)待抓取数据网站每层页面的页面标识信息;其中,所述页面标识信息可位于页面的标记语言文件的自定义标签、注释等;在此,所述标记语言文件包括但不限于:a)超文本标记语言(HTML)文件;b)可扩展超文本标记语言(XHTML)文件;

c)可扩展标记语言(XML)文件。具体地,当第一获取装置111首次访问待抓取数据网站时,首先,第一获取装置111根据该网站的网站拓扑结构信息中示出的首层页面URL,通过预定的通信方式,如http、https等通信协议,向该网站的网络设备,如网络服务器,发送首层页面获取请求,并接收该网络设备返回的首层页面;接着,第一获取装置111将该网站的首层页面作为当前页面,并提取该当前页面中包含的全部链接,并从其中选择一个未访问链接;其中,由于抓取设备I首次访问该网站,故该当前页面中的全部链接均为未访问链接;随后,第一获取装置111根据已被选择的该未访问链接,通过预定的通信方式,向该网络服务器发送该未访问链接指向下一层页面的下一层页面获取请求,并接收该网络设备返回的下一层页面,同时在已访问列表中将指向该下一层页面的该未访问链接记录为已访问链接,用于标识已访问该下一层页面。在一示例中,首先,第一获取装置111根据待抓取数据网站的网站拓扑结构信息中的首层页面URL,如http://d.cn,向该网站的网络服务器发送该URL指向页面的页面获取请求,并接收该网络服务器返回的该首层页面,且将其作为当前页面A ;接着,解析该当前页面A的标记语言文件,从中提取该当前页面A中包含的全部链接al、a2,并随机地选择链接al ;随后,第一获取装置111根据链接al,通过预定的通信方式,向该网络服务器发送链接al指向下一层页面B的下一层页面获取请求,并接收该网络设备返回的下一层页面B,同时在已访问列表中记录指向页面B的链接al,用于标识已访问该下一层页面B。本领域技术人员应能理解上述获取下一层页面的方式仅为举例,其他现有的或今后可能出现的获取下一层页面的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。接着,判断装置112根据第一预定规则,判断第一获取装置111获取的下一层页面是否为目标信息页面。在此,所述根据第一预定规则的判断方式包括但不限于:-将下一层页面的标记语言文件中的页面标识信息与预定的目标信息页面的页面类型进行比较,以判断该下一层页面是否为目标信息页面。在一示例中,判断装置112提取已获取的下一层页面的标记语言文件,如HTML文件,并解析该HTML文件,从而从该HTML文件的预定位置读取以获得注释信息:〈! -TYPE3—>,该注释信息与网站拓扑结构信息中预定的目标信息页面的页面类型相一致,则判断该下一层页面为目标信息页面。
本领域技术人员应能理解上述判断目标信息页面的方式仅为举例,其他现有的或今后可能出现的判断目标信息页面的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。随后,当判断装置112判断所述下一层页面为目标信息页面时,第一抓取装置114抓取所述目标信息页面。在此,所述抓取的方式包括但不限于以下任一项:I)抓取目标信息页面的标记语言文件及全部相关脚本文件,如CSS、JavaScript等;2)抓取目标信息页面中的文本信息、图片信息和下载链接。在一示例中,当下一层页面为目标信息页面时,第一抓取装置114解析该目标信息页面的HTML文件及全部相关脚本文件,提取该目标信息页面中的文本信息、图片信息和下载链接信息,并将该些信息存储于抓取设备I的存储数据库中;在此,所述数据库包括但不限于关系数据库、Key-Value存储系统或文件系统等。本领域技术人员应能理解上述抓取目标信息页面的方式仅为举例,其他现有的或今后可能出现的抓取目标信息页面的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。同时,当判断装置112判断所述下一层页面不为目标信息页面,则第一循环装置113将所述下一层页面作为当前根页面,重复执行第一获取装置111与判断装置112的操作,直至满足第一预定条件。 在此,所述第一预定条件包括:I)当前根页面已无下一层页面;2)重复执行第一获取装置111与判断装置112的操作的次数超过预定次数。具体地,当判断下一层页面不为目标信息页面,则第一循环装置113将该下一层页面作为当前根页面,重复执行第一获取装置111与判断装置112的操作,即,首先,根据网站的网站拓扑结构信息,从当前根页面中的全部链接选择一个未访问链接,并获取其指向的下一层页面;随后,根据第一预定规则,判断该下一层页面是否为目标信息页面;当判断该下一层页面为目标信息页面时,抓取所述目标信息页面;当该下一层页面不为目标信息页面,则将该下一层页面作为当前根页面,并第一循环装置113重复执行上述操作,直至满足第一预定条件。在一示例中,如图2所示,当网站的首层页面为A,其中包含未访问链接al和a2,随机地选择一条未访问链接al,该链接al指向的下一层页面B,且判断页面B不为目标信息页面时;则第一循环装置113将页面B作为当前根页面,并从页面B中的全部未访问链接bl和b2中,随机地选择一条未访问链接bl作为下一层访问的链接,从而根据链接bl,以获取链接bl指向下一层页面C,同时在已访问列表中记录指向页面C的链接bl,用于标识已访问页面C ;接着,根据第一预定规则,判断下一层页面C是否为目标信息页面,当判断C不为目标信息页面时,则将C作为当前根页面,从C的全部未访问链接Cl和c2中选择Cl作为下一层访问的链接,从而获取cl指向下一层页面D,同时在已访问列表中记录指向页面D的链接Cl ;接着第一预定规则,判断下一层页面D是否为目标信息页面;若判断D为目标信息页面,则抓取D ;若判断下一层页面D不为目标信息页面,则将页面D作为当前根页面,且页面D为网站的最后一层页面,即当前根页面已无下一层页面,满足第一预定条件,则第一循环装置113停止上述重复操作。本领域技术人员应能理解上述重复执行操作的方式仅为举例,其他现有的或今后可能出现的重复执行操作的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。当满足第二预定条件,第二循环装置115将前一根页面作为当前根页面,重复执行第一获取装置111、判断装置112、第一循环判断装置114和第一抓取装置113的操作。在此,所述第二预定条件包括以下任一项:I)当前根页面中的全部链接均已访问;2)当前根页面中预定数目的链接已访问。在一示例中,如图2所示,接上例,当当前根页面为页面D时,由于当前根页面D已无下一层页面,即满足第二预定条件中的当前根页面中的全部链接均已访问,则第二循环装置115将页面D的前一根页面C作为当前根页面,从而根据当前根页面C的全部链接Cl和c2,在已访问列表中进行匹配查询,确定并选择未访问链接c2作为下一层访问的链接,以获取c2指向下一层页面E,接着判断下一层页面E是否为目标信息页面,同时在已访问列表中记录指向页面E的链接c2 ;随后,由于当前根页面C中的全部链接cl和c2均已访问,即满足第二预定条件,则第二循环装置115将页面C的前一根页面B作为当前根页面,并根据已访问列表中示出的已访问链接,从当前根页面B中全部链接bl和b2中选择未访问链接b2,作为下一层访问的链接,从而根据链接b2,以获取链接b2指向下一层页面F,同时在已访问列表中记录指向F的链接b2,用于标识已访问下一层页面F ;接着,判断下一层页面F是否为目标信息页面;若判断F为目标信息页面,则抓取F ;若判断F不为目标信息页面,且根据该网站拓扑结构信息可知F为最后一层,同时根据已访问列表可知当前根页面B中的全部链接bl和b2均已访问,即满`足第二预定条件,则将页面B的前一根页面A作为当前根页面,根据已访问列表中示出的已访问链接,从当前根页面A中全部链接al和a2中选择未访问链接a2,作为下一层访问的链接,从而根据链接a2,以获取链接a2指向下一层页面G ;接着,判断G是否为目标信息页面,当判断G为目标信息页面时,则抓取目标信息页面G。本领域技术人员应能理解上述重复执行操作的方式仅为举例,其他现有的或今后可能出现的重复执行操作的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。图3示出根据本发明另一优选实施例的用于抓取网站数据的设备示意图。其中,抓取设备I还包括第二抓取装置316 ;第二抓取装置316根据第二预定规则,由第一抓取装置314抓取的目标信息页面的全部链接中确定并抓取目标下载链接。在此,图3中所示装置311、312、313、314和315的功能与前面参照图1所描述的装置111、112、113、114和115的内容相同,为简明起见,将其以引用方式包含于此,而不做赘述。以下参照图3来对抓取设备I确定抓取目标下载链接的过程进行详细描述:在此,所述根据第二预定规则确定并抓取目标下载链接的方式包括但不限于:-根据目标信息页面中链接的URL,通过关键词匹配的方式,以确定并抓取目标下载链接。
在一示例中,当目标信息页面为H时,第二抓取装置316提取H中的全部链接hi和h2,接着,根据链接hi和h2的URL,与预定的关键词jar”进行字符串匹配,从而确定链接hi中包含该关键词,则确定hi为目标下载链接,进而抓取目标下载链接hi的文本信息及URL。本领域技术人员应能理解上述确定目标下载链接的方式仅为举例,其他现有的或今后可能出现的确定目标下载链接的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。图4示出根据本发明又一优选实施例的用于抓取网站数据的设备示意图。其中,第二抓取装置416包含链接确定单元4161和第三抓取单元4162。链接确定单元4161根据第二预定规则,从第一抓取装置414抓取的目标信息页面包含的全部链接中确定待确定下载链接;第三抓取单元4162根据链接确定单元4161确定的待确定下载链接对应的下载数据包,由该等待确定下载链接中确定并抓取目标下载链接。在此,图4中所示装置411、412、413、414和415的功能与前面参照图3所描述的装置311、312、313、314和315的内容相同,为简明起见,将其以引用方式包含于此,而不做赘述。以下参照图4来对抓取设备I确定待确定下载链接及确定并抓取目标下载链接的过程进行详细描述:在一示例中,当目标信息页面包含的全部链接为h1、h2和h3,链接确定单元4161根据该三条链接的URL,与预定的关键词sis”与jar”分别进行字符串匹配,从而确定hi的URL中包含关键词sis”且h3的URL中包含关键词jar”,即确定hi和h2为待确定下载链接;接着,第三抓取单元4162根据待确定下载链接hi和h2,获取该两个链接对应的下载数据包,并读取该两个下载数 据包的头文件以判断其是否为二进制数据包,当判断下载链接hi对应的下载数据包为二进制数据包时,则确定下载链接hi为目标下载链接,从而抓取该下载链接hi的文本信息及URL,并存储于抓取设备I的数据存储库中。本领域技术人员应能理解上述确定待确定下载链接的方式和/或确定并抓取目标下载链接的方式仅为举例,其他现有的或今后可能出现的确定待确定下载链接的方式和/或确定并抓取目标下载链接的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。图5示出根据本发明再一优选实施例的用于抓取网站数据的设备示意图。其中,第一获取装置511包括第二获取单元5111和第三获取单元5112。第二获取单元5111根据所述网站拓扑结构信息及预定分类列表,在所述当前根页面中的全部链接中进行查询,以获取与所述预定分类列表中的分类相匹配的一个或多个匹配链接;第三获取单元5112由第二获取单元5111获取的一个或多个匹配链接中选择一个未访问链接,并获取其指向的下一层页面。在此,图5中所示装置512、513、514和515的功能与前面参照图1所描述的装置112、113、114和115的内容相同,为简明起见,将其以引用方式包含于此,而不做赘述。以下参照图5来对抓取设备I获取匹配链接及获取下一层页面的过程进行详细描述:在此,所述目标信息页面可分别属于不同的分类;例如,抓取设备I在为特定品牌、特定型号的移动终端抓取目标信息页面和目标下载链接时,则预定分类列表中示出需要抓取的特定品牌和特定型号的分类标识。在一示例中,首先,当待抓取数据网站为移动终端的应用提供网站时,则第二获取单元5111提取当前根页面B中包含的全部链接al、a2、a3和a4,并根据网站的网站拓扑结构信息示出的当前根页面所在层的页面中包含链接URL的匹配特征信息:http://c-d.cn/wml/ecip/index/ from =.*$,与该全部链接al、a2、a3和a4的URL分别进行匹配,以确定与该匹配特征信息相匹配的链接为al、a3和a4,并提取链接al的锚文本的文本信息为“Nokia N8应用”,链接a3的锚文本的文本信息为“Nokia E7应用”且链接a4的锚文本的文本信息为“LG 6660应用”;接着,第二获取单元5111根据预定分类列表中示出的品牌分类标识及对应的型号分类标识为“LG 6660”和“Nokia E7”,与链接为al、a3和a4的锚文本的文本信息分别进行字符串匹配,获取的与该品牌分类标识和该型号分类标识均相匹配的匹配链接为a3和a4 ;随后,第三获取单元5112根据已访问列表,由匹配链接a3和a4中选择未访问链接a4,并向该网站的网站服务器发送获取链接a4指向下一层页面的下一层页面获取请求,并接收该网站服务器返回的下一层页面。在此,所述锚文本意指锚文本链接,即超文本链接,其建立了文本关键词与URL链接的关系。在此,需要说明的是,实施例中的匹配特征信息作为说明作用的示例,仅供理解本发明,不作为实际应用时的匹配特征信息。如无特别说明,本文中其他地方出现的匹配特征信息的功用与此处相同,为简明起见,不再赘述。本领域技术人员应能理解上述获取匹配链接的方式和/或获取下一层页面的方式仅为举例,其他现有的或今后可能出现的获取匹配链接的方式和/或获取下一层页面的方式如可适用于本发 明,也应包含在本发明保护范围以内,并以引用方式包含于此。图6示出根据本发明再一优选实施例的用于抓取网站数据的设备示意图。其中,第一抓取设备614包括比较单元6141和第三抓取单元6142。当判断装置612判断下一层页面为目标信息页面时,比较单元6141将其与已抓取页面信息中进行比较;当该下一层页面不存在于所述已抓取页面信息中时,第三抓取单元6142将其抓取为所述目标信息页面。在此,图6中所示装置611、612、613和615的功能与前面参照图1所描述的装置111、112、113和115的内容相同,为简明起见,将其以引用方式包含于此,而不做赘述。在此,所述已抓取页面信息包括但不限于:-已抓取的目标信息页面的标识信息,如该目标信息页面的URL或标识ID或标识名称;-已抓取的目标信息页面的特征信息;其可存在于已抓取数据库中,其中,所述已抓取数据库包括但不限于关系数据库、Key-Value存储系统或文件系统等。在一示例中,当判断下一层页面为目标信息页面时,比较单元6141解析该目标信息页面的标记语言文件,例如通过在该目标信息页面的HTML文件的预定位置读取HTML注释信息;其中,该注释信息为目标信息页面的标识ID,接着,根据该标识ID,在已抓取数据库存储的已抓取页面信息中进行比较,确定该标识ID不存在于已抓取页面信息中,则第三抓取单元6142将其抓取为目标信息页面,并存储于抓取设备I的数据存储库中,以实现增量数据抓取。优选地(参照图6),抓取设备I还包括更新装置(未示出),该更新装置根据第三抓取单元6142已抓取的目标信息页面,保存或更新已抓取页面信息。具体地,更新装置将在第三抓取单元6142已抓取的目标信息页面的标识信息,写入到已抓取数据库中,以保存或更新已抓取页面信息;若检测到该已抓取数据库未建立,则先行初始化该已抓取数据库,然后将目标信息页面的标识信息写入到已抓取数据库中。在一示例中,更新装置根据在第三抓取单元6142已抓取的目标信息页面的标识ID,在已抓取数据库中插入一条包括该标识ID的数据记录,以保存或更新已抓取页面信肩、O本领域技术人员应能理解上述保存或更新已抓取页面信息的方式仅为举例,其他现有的或今后可能出现的保存或更新已抓取页面信息的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。图7示出根据本发明另一个方面的用于抓取网站数据的方法流程图。在此,抓取设备I为网络设备,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。在此,抓取设备I与网站的网络设备之间可通过任何通信方式实现通信,包括但不限于,基于3GPP 、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。以下参照图7来对抓取设备I抓取目标信息页面的过程进行详细描述:首先,在步骤S701中,抓取设备I根据所述网站拓扑结构信息,由当前根页面中的全部链接选择一个未访问链接,并获取其指向的下一层页面。在此,所述网站拓扑结构信息包括但不限于以下任一项:I)待抓取数据网站的首层页面的统一资源定位符(URL);2)待抓取数据网站的层数信息,即首层页面(第一层)至目标信息页面(最后一层)的层数;3)待抓取数据网站每层页面中包含链接的匹配特征信息;4)待抓取数据网站每层页面的页面标识信息;其中,所述页面标识信息可位于页面的标记语言文件的自定义标签、注释等;在此,所述标记语言文件包括但不限于:a)超文本标记语言(HTML)文件;b)可扩展超文本标记语言(XHTML)文件;c)可扩展标记语言(XML)文件。具体地,当抓取设备I首次访问待抓取数据网站时,首先,在步骤S701中,抓取设备I根据该网站的网站拓扑结构信息中示出的首层页面URL,通过预定的通信方式,如http、https等通信协议,向该网站的网络设备,如网络服务器,发送首层页面获取请求,并接收该网络设备返回的首层页面;接着,抓取设备I将该网站的首层页面作为当前页面,并提取该当前页面中包含的全部链接,并从其中选择一个未访问链接;其中,由于抓取设备I首次访问该网站,故该当前页面中的全部链接均为未访问链接;随后,抓取设备I根据已被选择的该未访问链接,通过预定的通信方式,向该网络服务器发送该未访问链接指向下一层页面的下一层页面获取请求,并接收该网络设备返回的下一层页面,同时在已访问列表中将指向该下一层页面的该未访问链接记录为已访问链接,用于标识已访问该下一层页面。在一示例中,首先,在步骤S701中,抓取设备I根据待抓取数据网站的网站拓扑结构信息中的首层页面URLJn http://d.cn,向该网站的网络服务器发送该URL指向页面的页面获取请求,并接收该网络服务器返回的该首层页面,且将其作为当前页面A ;接着,解析该当前页面A的标记语言文件,从中提取该当前页面A中包含的全部链接al、a2,并随机地选择链接al ;随后,抓取设备I根据链接al,通过预定的通信方式,向该网络服务器发送链接al指向下一层页面B的下一层页面获取请求,并接收该网络设备返回的下一层页面B,同时在已访问列表中记录指向页面B的链接al,用于标识已访问该下一层页面B。本领域技术人员应能理解上述获取下一层页面的方式仅为举例,其他现有的或今后可能出现的获取下一层页面的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。接着,在步骤S702中,抓取设备I根据第一预定规则,判断其获取的下一层页面是否为目标信息页面。在此,所述根据第一预定规则的判断方式包括但不限于:-将下一层页面的标记语言文件中的页面标识信息与预定的目标信息页面的页面类型进行比较,以判断该下一层页面是否为目标信息页面。在一示例中,在步骤S702中,抓取设备I提取已获取的下一层页面的标记语言文件,如HTML文件,并 解析该HTML文件,从而从该HTML文件的预定位置读取以获得注释信息:〈! -TYPE 3—>,该注释信息与网站拓扑结构信息中预定的目标信息页面的页面类型相一致,则判断该下一层页面为目标信息页面。本领域技术人员应能理解上述判断目标信息页面的方式仅为举例,其他现有的或今后可能出现的判断目标信息页面的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。随后,当抓取设备I判断所述下一层页面为目标信息页面时,在步骤S704中,抓取设备I抓取所述目标信息页面。在此,所述抓取的方式包括但不限于以下任一项:I)抓取目标信息页面的标记语言文件及全部相关脚本文件,如CSS、JavaScript等;2)抓取目标信息页面中的文本信息、图片信息和下载链接。在一示例中,当下一层页面为目标信息页面时,在步骤S704中,抓取设备I解析该目标信息页面的HTML文件及全部相关脚本文件,提取该目标信息页面中的文本信息、图片信息和下载链接信息,并将该些信息存储于抓取设备I的存储数据库中;在此,所述数据库包括但不限于关系数据库、Key-Value存储系统或文件系统等。本领域技术人员应能理解上述抓取目标信息页面的方式仅为举例,其他现有的或今后可能出现的抓取目标信息页面的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。同时,当抓取设备I判断所述下一层页面不为目标信息页面,则在步骤S703中,抓取设备I将所述下一层页面作为当前根页面,重复执行抓取设备I在步骤S701和步骤S702中的操作,直至满足第一预定条件。在此,所述第一预定条件包括:I)当前根页面已无下一层页面;2)重复执行在步骤S701和步骤S702中的操作的次数超过预定次数。具体地,当判断下一层页面不为目标信息页面,则在步骤S703中,抓取设备I将该下一层页面作为当前根页面,重复执行其在步骤S701和步骤S702中的操作,即,首先,根据网站的网站拓扑结构信息,从当前根页面中的全部链接选择一个未访问链接,并获取其指向的下一层页面;随后,根据第一预定规则,判断该下一层页面是否为目标信息页面;当判断该下一层页面为目标信息页面时,抓取所述目标信息页面;当该下一层页面不为目标信息页面,则将该下一层页面作为当前根页面,并抓取设备I重复执行上述操作,直至满足第一预定条件。在一示例中,如图2所示,当网站的首层页面为A,其中包含未访问链接al和a2,随机地选择一条未访问链接al,该链接al指向的下一层页面B,且判断页面B不为目标信息页面时;则在步骤S703中,抓取设备I将页面B作为当前根页面,并从页面B中的全部未访问链接bl和b2中,随机地选择一条未访问链接bl作为下一层访问的链接,从而根据链接bl,以获取链接bl指向下一层页面C,同时在已访问列表中记录指向页面C的链接bl,用于标识已访问页面C ;接着,根据第一预定规则,判断下一层页面C是否为目标信息页面,当判断C不为目标信息页面时,则将C作为当前根页面,从C的全部未访问链接Cl和c2中选择Cl作为下一层访问的链接·,从而获取Cl指向下一层页面D,同时在已访问列表中记录指向页面D的链接Cl ;接着第一预定规则,判断下一层页面D是否为目标信息页面;若判断D为目标信息页面,则抓取D ;若判断下一层页面D不为目标信息页面,则将页面D作为当前根页面,且页面D为网站的最后一层页面,即当前根页面已无下一层页面,满足第一预定条件,则抓取设备I停止上述重复操作。本领域技术人员应能理解上述重复执行操作的方式仅为举例,其他现有的或今后可能出现的重复执行操作的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。当满足第二预定条件,在步骤S705中,抓取设备I将前一根页面作为当前根页面,重复执行其在步骤S701、步骤S702、步骤S703和步骤S704中的操作。在此,所述第二预定条件包括以下任一项:I)当前根页面中的全部链接均已访问;2)当前根页面中预定数目的链接已访问。在一示例中,如图2所示,接上例,当当前根页面为页面D时,由于当前根页面D已无下一层页面,即满足第二预定条件中的当前根页面中的全部链接均已访问,则在步骤S705中,抓取设备I将页面D的前一根页面C作为当前根页面,从而根据当前根页面C的全部链接Cl和c2,在已访问列表中进行匹配查询,确定并选择未访问链接c2作为下一层访问的链接,以获取c2指向下一层页面E,接着判断下一层页面E是否为目标信息页面,同时在已访问列表中记录指向页面E的链接c2 ;随后,由于当前根页面C中的全部链接cl和c2均已访问,即满足第二预定条件,则抓取设备I将页面C的前一根页面B作为当前根页面,并根据已访问列表中示出的已访问链接,从当前根页面B中全部链接bl和b2中选择未访问链接b2,作为下一层访问的链接,从而根据链接b2,以获取链接b2指向下一层页面F,同时在已访问列表中记录指向F的链接b2,用于标识已访问下一层页面F ;接着,判断下一层页面F是否为目标信息页面;若判断F为目标信息页面,则抓取F ;若判断F不为目标信息页面,且根据该网站拓扑结构信息可知F为最后一层,同时根据已访问列表可知当前根页面B中的全部链接bl和b2均已访问,即满足第二预定条件,则将页面B的前一根页面A作为当前根页面,根据已访问列表中示出的已访问链接,从当前根页面A中全部链接al和a2中选择未访问链接a2,作为下一层访问的链接,从而根据链接a2,以获取链接a2指向下一层页面G ;接着,判断G是否为目标信息页面,当判断G为目标信息页面时,则抓取目标信息页面G0本领域技术人员应能理解上述重复执行操作的方式仅为举例,其他现有的或今后可能出现的重复执行操作的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。图8示出根据本发明另一优选实施例的用于抓取网站数据的方法流程图。其中,该过程还包括步骤S806 ;在步骤S806中,抓取设备I根据第二预定规则,由其抓取的目标信息页面的全部链接中确定并抓取目标下载链接。在此,图8中所示的抓取设备I在步骤S801、步骤S802、步骤S803、步骤S804和步骤S805中的功能与前面参照图7所描述的抓取设备I在步骤S701、步骤S702、步骤S703、步骤S704和步骤S705中的内容相同,为简明起见,将其以引用方式包含于此,而不做赘述。以下参照图8来对抓取设备I确定抓取目标下载链接的过程进行详细描述:
在此,所述根据第二预定规则确定并抓取目标下载链接的方式包括但不限于:-根据目标信息页面中链接的URL,通过关键词匹配的方式,以确定并抓取目标下载链接。在一示例中,当目标信息页面为H时,在步骤S806中,抓取设备I提取H中的全部链接hi和h2,接着,根据链接hi和h2的URL,与预定的关键词jar”进行字符串匹配,从而确定链接hi中包含该关键词,则确定hi为目标下载链接,进而抓取目标下载链接hi的文本信息及URL。本领域技术人员应能理解上述确定目标下载链接的方式仅为举例,其他现有的或今后可能出现的确定目标下载链接的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。图9示出根据本发明又一优选实施例的用于抓取网站数据的方法流程图。其中,该过程包括步骤S9061和步骤S9062。在步骤S9061中,抓取设备I根据第二预定规则,从其在步骤S904中抓取的目标信息页面包含的全部链接中确定待确定下载链接;在步骤S9062中,抓取设备I根据其在步骤S9061中确定的待确定下载链接对应的下载数据包,由该等待确定下载链接中确定并抓取目标下载链接。在此,图9中所示抓取设备I在步骤S901、步骤S902、步骤S903、步骤S904和步骤S905中的功能与前面参照图8所描述的抓取设备I在步骤S801、步骤S802、步骤S803、步骤S804和步骤S805中的内容相同,为简明起见,将其以引用方式包含于此,而不做赘述。以下参照图9来对抓取设备I确定待确定下载链接及确定并抓取目标下载链接的过程进行详细描述:在一示例中,当目标信息页面包含的全部链接为hl、h2和h3,在步骤S9061中,抓取设备I根据该三条链接的URL,与预定的关键词sis”与jar”分别进行字符串匹配,从而确定hi的URL中包含关键词sis”且h3的URL中包含关键词jar”,即确定hi和h2为待确定下载链接;接着,在步骤S9062中,抓取设备I根据待确定下载链接hi和h2,获取该两个链接对应的下载数据包,并读取该两个下载数据包的头文件以判断其是否为二进制数据包,当判断下载链接hi对应的下载数据包为二进制数据包时,则确定下载链接hi为目标下载链接,从而抓取该下载链接hi的文本信息及URL,并存储于抓取设备I的数据存储库中。本领域技术人员应能理解上述确定待确定下载链接的方式和/或确定并抓取目标下载链接的方式仅为举例,其他现有的或今后可能出现的确定待确定下载链接的方式和/或确定并抓取目标下载链接的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。图10示出根据本发明再一优选实施例的用于抓取网站数据的方法流程图。其中,该过程包括步骤SlOOll和步骤S10012。在步骤SlOOll中,抓取设备I根据所述网站拓扑结构信息及预定分类列表,在所述当前根页面中的全部链接中进行查询,以获取与所述预定分类列表中的分类相匹配的一个或多个匹配链接;在步骤S10012中,抓取设备I由其在步骤SlOOll中获取的一个或多个匹配链接中选择一个未访问链接,并获取其指向的下一层页面。在此,图10中所示抓取设备I在步骤S1002、步骤S1003、步骤S1004和步骤S1005的功能与前面参照图7所 描述的抓取设备I在步骤S702、步骤S703、步骤S704和步骤S705的内容相同,为简明起见,将其以引用方式包含于此,而不做赘述。以下参照图10来对抓取设备I获取匹配链接及获取下一层页面的过程进行详细描述:在此,所述目标信息页面可分别属于不同的分类;例如,抓取设备I在为特定品牌、特定型号的移动终端抓取目标信息页面和目标下载链接时,则预定分类列表中示出需要抓取的特定品牌和特定型号的分类标识。在一示例中,首先,当待抓取数据网站为移动终端的应用提供网站时,则在步骤SlOOll中,抓取设备I提取当前根页面B中包含的全部链接al、a2、a3和a4,并根据网站的网站拓扑结构信息示出的当前根页面所在层的页面中包含链接URL的匹配特征信息:http://c-d.cn/wml/ecip/index/ from =.*$,与该全部链接al、a2、a3和a4的URL分别进行匹配,以确定与该匹配特征信息相匹配的链接为al、a3和a4,并提取链接al的锚文本的文本信息为“Nokia N8应用”,链接a3的锚文本的文本信息为“Nokia E7应用”且链接a4的锚文本的文本信息为“LG 6660应用”;接着,在步骤S10012中,抓取设备I根据预定分类列表中示出的品牌分类标识及对应的型号分类标识为“LG 6660”和“Nokia E7”,与链接为al、a3和a4的锚文本的文本信息分别进行字符串匹配,获取的与该品牌分类标识和该型号分类标识均相匹配的匹配链接为a3和a4 ;随后,抓取设备I根据已访问列表,由匹配链接a3和a4中选择未访问链接a4,并向该网站的网站服务器发送获取链接a4指向下一层页面的下一层页面获取请求,并接收该网站服务器返回的下一层页面。在此,所述锚文本意指锚文本链接,即超文本链接,其建立了文本关键词与URL链接的关系。在此,需要说明的是,实施例中的匹配特征信息作为说明作用的示例,仅供理解本发明,不作为实际应用时的匹配特征信息。如无特别说明,本文中其他地方出现的匹配特征信息的功用与此处相同,为简明起见,不再赘述。本领域技术人员应能理解上述获取匹配链接的方式和/或获取下一层页面的方式仅为举例,其他现有的或今后可能出现的获取匹配链接的方式和/或获取下一层页面的方式如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。

图11示出根据本发明再一优选实施例的用于抓取网站数据的方法流程图。其中,该过程还包括步骤S11041和步骤S11042。当抓取设备在步骤S1102中判断下一层页面为目标信息页面时,在步骤S11041中,抓取设备I将其与已抓取页面信息中进行比较;当该下一层页面不存在于所述已抓取页面信息中时,在步骤S11042中,抓取设备I将其抓取为所述目标信息页面。在此,图11中所示抓取设备I在步骤S1101、步骤S1102、步骤S1103和步骤S1105的功能与前面参照图7所描述的抓取设备I在步骤S701、步骤S702、步骤S703和步骤S705的内容相同,为简明起见,将其以引用方式包含于此,而不做赘述。在此,所述已抓取页面信息包括但不限于:-已抓取的目标信息页面的标识信息,如该目标信息页面的URL或标识ID或标识名称;-已抓取的目标信息页面的特征信息;其可存在于已抓取数据库中,其中,所述已抓取数据库包括但不限于关系数据库、Key-Value存储系统或文件系统等。在一示例中,当判断下一层页面为目标信息页面时,在步骤S11041中,抓取设备I解析该目标信息页面的标记语言文件,例如通过在该目标信息页面的HTML文件的预定位置读取HTML注释信息;其中,该注释信息为目标信息页面的标识ID,接着,根据该标识ID,在已抓取数据库存储的已抓取页面信息中进行比较,确定该标识ID不存在于已抓取页面信息中,则在步骤SI 1042中,抓取设备I将其抓取为目标信息页面,并存储于抓取设备I的数据存储库中,以实现增量数据抓取。优选地(参照图11),该过程还包括步骤SI 107 (未示出),在步骤SI 107中,抓取设备I根据其在步骤S11042中已抓取的目标信息页面,保存或更新已抓取页面信息。具体地,在步骤SI 107中,抓取设备I将其在步骤SI 1042中已抓取的目标信息页面的标识信息,写入到已抓取数据库中,以保存或更新已抓取页面信息;若检测到该已抓取数据库未建立,则先行初始化该已抓取数据库,然后将目标信息页面的标识信息写入到已抓取数据库中。 在一示例中,在步骤SI 107中,抓取设备I根据其已抓取的目标信息页面的标识ID,在已抓取数据库中插入一条包括该标识ID的数据记录,以保存或更新已抓取页面信息本领域技术人员应能理解上述保存或更新已抓取页面信息的方式仅为举例,其他现有的或今后可能出现的保存或更新已抓取页面信息的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此夕卜,显然“包括” 一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
权利要求
1.一种计算机实现的用于抓取网站数据的方法,该方法包括以下步骤: a根据所述网站拓扑结构信息,由当前根页面中的全部链接选择一个未访问链接,并获取其指向的下一层页面; b根据第一预定规则,判断所述下一层页面是否为目标信息页面; Cl当所述下一层页面不为目标信息页面,则将所述下一层页面作为当前根页面,重复执行所述步骤a和b,直至满足第一预定条件; c2当判断所述下一层页面为目标信息页面时,抓取所述目标信息页面; 其中,该方法还包括: -当满足第二预定条件,将前一根页面作为当前根页面,重复执行所述步骤a、b、Cl和 c20
2.根据权利要求1所述的方法,其中,所述方法还包括: y根据第二预定规则,由所述目标信息页面的全部链接中确定并抓取目标下载链接。
3.根据权利要求2所述的方法,其中,所述步骤I包括: -根据第二预定规则,从所述目标信息页面包含的全部链接中确定待确定下载链接; -根据所述待确定下载链接对应的下载数据包,由所述待确定下载链接中确定并抓取所述目标下载链接。
4.根据权利要求1至3中任一项所述的方法,其中,所述步骤a包括: -根据所述网站拓扑结构信息及预定分类列表,在所述当前根页面中的全部链接中进行查询,以获取与所述预定分类列表中的分类相匹配的一个或多个匹配链接; -由所述一个或多个匹配链接中选择一个未访问链接,并获取其指向的下一层页面。
5.根据权利要求1至4中任一项所述的方法,其中,所述步骤c2包括: -当判断所述下一层页面为目标信息页面时,将其与已抓取页面信息中进行比较; -当该下一层页面不存在于所述已抓取页面信息中时,将其抓取为所述目标信息页面。
6.根据权利要求5所述的方法,其中,该方法还包括: -根据已抓取的所述目标信息页面,保存或更新所述已抓取页面信息。
7.一种用于抓取网站数据的设备,该方法设备包括: 第一获取装置,用于根据所述网站拓扑结构信息,由当前根页面中的全部链接选择一个未访问链接,并获取其指向的下一层页面; 判断装置,用于根据第一预定规则,判断所述下一层页面是否为目标信息页面; 第一循环装置,用于当判断所述下一层页面不为目标信息页面,则将所述下一层页面作为当前根页面,重复执行所述第一获取装置与所述判断装置的操作,直至满足第一预定条件; 其中,该设备还包括: 第一抓取装置,用于当判断所述下一层页面为目标信息页面时,抓取所述目标信息页面; 其中,所述设备还包括: 第二循环装置,用于当满足第二预定条件,将前一根页面作为当前根页面,重复执行所述第一获取装置、所述判断装置、所述第一循环判断装置和所述第一抓取装置的操作。
8.根据权利要求7所述的设备,其中,所述设备还包括:第二抓取装置,用于根据第二预定规则,由所述目标信息页面的全部链接中确定并抓取目标下载链接。
9.根据权利要求8所述的设备,其中,所述第二抓取装置包括: 链接确定单元,用于根据第二预定规则,从所述目标信息页面包含的全部链接中确定待确定下载链接; 第三抓取单元,用于根据所述待确定下载链接对应的下载数据包,由所述待确定下载链接中确定并抓取所述目标下载链接。
10.根据权利要求7至9中任一项所述的设备,其中,所述第一获取装置包括: 第二获取单元,用于根据所述网站拓扑结构信息及预定分类列表,在所述当前根页面中的全部链接中进行查询,以获取与所述预定分类列表中的分类相匹配的一个或多个匹配链接; 第三获取单元,用于由所述一个或多个匹配链接中选择一个未访问链接,并获取其指向的下一层页面。
11.根据权利要求7至10中任一项所述的设备,其中,所述第一抓取设备包括: 比较单元,用于当 判断所述下一层页面为目标信息页面时,将其与已抓取页面信息中进行比较; 第三抓取单元,用于当该下一层页面不存在于所述已抓取页面信息中时,将其抓取为所述目标信息页面。
12.根据权利要求11所述的设备,其中,该设备还包括: 更新装置,用于根据已抓取的所述目标信息页面,保存或更新所述已抓取页面信息。
全文摘要
本发明的目的是提供一种用于抓取网站数据的方法与设备。首先,根据所述网站拓扑结构信息,由当前根页面中的全部链接选择一个未访问链接,并获取其指向的下一层页面;接着,根据第一预定规则,判断所述下一层页面是否为目标信息页面;当所述下一层页面不为目标信息页面,则将所述下一层页面作为当前根页面,重复执行所述步骤a和b,直至满足第一预定条件;当判断所述下一层页面为目标信息页面时,抓取所述目标信息页面;当满足第二预定条件,将前一根页面作为当前根页面,重复执行所述步骤a、b、c1和c2。与现有技术相比,本发明采用深度优先遍历的方式,实现了抓取整个网站的目标数据,保证了对目标数据抓取的准确性,提高数据抓取的效率。
文档编号G06F17/30GK103246675SQ201210030588
公开日2013年8月14日 申请日期2012年2月10日 优先权日2012年2月10日
发明者江军, 余庆生 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1