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

技术编号:9034020 阅读:80 留言:0更新日期:2013-08-15 00:51
本发明专利技术的目的是提供一种用于抓取网站数据的方法与设备。首先,根据所述网站拓扑结构信息,由当前根页面中的全部链接选择一个未访问链接,并获取其指向的下一层页面;接着,根据第一预定规则,判断所述下一层页面是否为目标信息页面;当所述下一层页面不为目标信息页面,则将所述下一层页面作为当前根页面,重复执行所述步骤a和b,直至满足第一预定条件;当判断所述下一层页面为目标信息页面时,抓取所述目标信息页面;当满足第二预定条件,将前一根页面作为当前根页面,重复执行所述步骤a、b、c1和c2。与现有技术相比,本发明专利技术采用深度优先遍历的方式,实现了抓取整个网站的目标数据,保证了对目标数据抓取的准确性,提高数据抓取的效率。

【技术实现步骤摘要】

本专利技术涉及互联网
,尤其涉及一种用于抓取网站数据的技术。
技术介绍
现有技术中,从数据提供网站抓取数据一般需要针对每个网站单独执行一个脚本,但是当数据提供网站数量较多时,需要维护多套抓取脚本,因此脚本维护成本较高,数据抓取效率不高;同时,在数据提供网站设置分类信息后,在其服务器端会存有最后一次设置分类信息的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获取的下一层页面是否为目标信息页面本文档来自技高网...
一种用于抓取网站数据的方法与设备

【技术保护点】
一种计算机实现的用于抓取网站数据的方法,该方法包括以下步骤:a根据所述网站拓扑结构信息,由当前根页面中的全部链接选择一个未访问链接,并获取其指向的下一层页面;b根据第一预定规则,判断所述下一层页面是否为目标信息页面;c1当所述下一层页面不为目标信息页面,则将所述下一层页面作为当前根页面,重复执行所述步骤a和b,直至满足第一预定条件;c2当判断所述下一层页面为目标信息页面时,抓取所述目标信息页面;其中,该方法还包括:?当满足第二预定条件,将前一根页面作为当前根页面,重复执行所述步骤a、b、c1和c2。

【技术特征摘要】

【专利技术属性】
技术研发人员:江军余庆生
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:

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

1