CN109213824B - 数据抓取***、方法和装置 - Google Patents
数据抓取***、方法和装置 Download PDFInfo
- Publication number
- CN109213824B CN109213824B CN201710516470.7A CN201710516470A CN109213824B CN 109213824 B CN109213824 B CN 109213824B CN 201710516470 A CN201710516470 A CN 201710516470A CN 109213824 B CN109213824 B CN 109213824B
- Authority
- CN
- China
- Prior art keywords
- uniform resource
- crawler
- resource locator
- page
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了数据抓取***、方法和装置。该***的一具体实施方式包括:爬虫客户端,用于向爬虫服务器发送数据抓取请求,接收爬虫服务器返回的包括待处理的配置文件的数据抓取文件,抓取列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符,并向爬虫服务器发送内容页的统一资源定位符;爬虫服务器,用于接收爬虫客户端发送的数据抓取请求,向爬虫客户端发送包括待处理的配置文件的数据抓取文件,接收爬虫客户端返回的抓取到的内容页的统一资源定位符,并对抓取到的内容页的统一资源定位符进行存储。该实施方式通过简单的***配置,完成数据抓取工作。
Description
技术领域
本申请涉及计算机技术领域,具体涉及数据处理技术领域,尤其涉及数据抓取***、方法和装置。
背景技术
互联网上的数据是很多的,但大多数数据是杂乱无章的,如果能将这些分散到互联网各处的数据很好的组织到一起,就会产生巨大的价值。如何用一种廉价的方式获取数据对于各个互联网公司具有重要的意义,也是各个互联网公司竞争的关键。
发明内容
本申请的目的在于提出一种改进的数据抓取***、方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请实施例提供了一种数据抓取***,该***包括:爬虫客户端和爬虫服务器;爬虫客户端,用于向爬虫服务器发送数据抓取请求,接收爬虫服务器返回的包括待处理的配置文件的数据抓取文件,其中,配置文件是用户终端发送给爬虫服务器的、记录用户通过用户终端选取出的列表页的统一资源定位符,抓取列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符,并向爬虫服务器发送内容页的统一资源定位符;爬虫服务器,用于接收爬虫客户端发送的数据抓取请求,向爬虫客户端发送包括待处理的配置文件的数据抓取文件,接收爬虫客户端返回的抓取到的内容页的统一资源定位符,并对抓取到的内容页的统一资源定位符进行存储。
在一些实施例中,该***还包括分布式存储服务器集群;以及爬虫客户端还用于:抓取与抓取到的内容页的统一资源定位符关联的内容页所在网页的网页信息;向分布式存储服务器集群发送网页信息,以供分布式存储服务器集群对网页信息进行存储。
在一些实施例中,爬虫服务器还用于:将抓取到的内容页的统一资源定位符存储于本地数据库中,其中,本地数据库通过数据库链接链接到分布式存储服务器集群的数据库,分布式存储服务器集群的数据库用于存储网页信息。
在一些实施例中,网页信息为网页结构化信息,其中,网页信息包括多个属性,多个属性中的至少一个属性对应的属性信息组成网页信息的属性信息集合;以及分布式存储服务器集群还用于:针对属性信息集合相同的至少两个网页信息,确定除属性信息集合中的属性信息对应的属性之外的属性对应的属性信息是否相同;响应于确定出除属性信息集合中的属性信息对应的属性之外的属性对应的属性信息相同,保留至少两个网页信息中的任一网页信息,删除至少两个网页信息中除保留的网页信息之外的网页信息,并将至少两个网页信息所来源的统一资源定位符作为保留的网页信息的来源信息。
在一些实施例中,分布式存储服务器集群还用于:响应于确定出除属性信息集合中的属性信息对应的属性之外的属性对应的属性信息不相同,针对至少两个网页信息中的每个网页信息,标识出该网页信息与至少两个网页信息中除该网页信息之外的网页信息不相同的属性。
在一些实施例中,配置文件是用户通过用户终端利用预先建立的可视化工具进行设置而生成的。
第二方面,本申请实施例提供了一种数据抓取方法,该方法包括:向爬虫服务器发送数据抓取请求;接收爬虫服务器返回的包括待处理的配置文件的数据抓取文件,其中,配置文件是用户终端发送给爬虫服务器的、记录用户通过用户终端选取出的列表页的统一资源定位符;抓取列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符;向爬虫服务器发送抓取到的内容页的统一资源定位符,以供爬虫服务器对抓取到的内容页的统一资源定位符进行存储。
在一些实施例中,该方法还包括:抓取与抓取到的内容页的统一资源定位符相关的网页信息;向分布式存储服务器集群发送网页信息,以供分布式存储服务器集群对网页信息进行存储。
在一些实施例中,配置文件是用户通过用户终端利用预先建立的可视化工具进行设置而生成的。
第三方面,本申请实施例提供了一种数据抓取方法,该方法包括:接收爬虫客户端发送的数据抓取请求;向爬虫客户端发送包括待处理的配置文件的数据抓取文件,其中,配置文件是用户终端发送的、记录用户通过用户终端选取出的列表页的统一资源定位符;接收爬虫客户端返回的抓取到的内容页的统一资源定位符,其中,内容页的统一资源定位符是爬虫客户端抓取到的列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符;对内容页的统一资源定位符进行存储。
在一些实施例中,对内容页的统一资源定位符进行存储,包括:将内容页的统一资源定位符存储于本地数据库中,其中,本地数据库通过数据库链接链接到分布式存储服务器集群的数据库,分布式存储服务器集群的数据库用于存储网页信息,网页信息是爬虫客户端抓取的与内容页的统一资源定位符相关的、并发送给分布式存储服务器集群的网页信息。
在一些实施例中,配置文件是用户通过用户终端利用预先建立的可视化工具进行设置而生成的。
第四方面,本申请实施例提供了一种数据抓取装置,该装置包括:第一发送单元,配置用于向爬虫服务器发送数据抓取请求;接收单元,配置用于接收爬虫服务器返回的包括待处理的配置文件的数据抓取文件,其中,配置文件是用户终端发送给爬虫服务器的、记录用户通过用户终端选取出的列表页的统一资源定位符;第一抓取单元,配置用于抓取列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符;第二发送单元,配置用于向爬虫服务器发送抓取到的内容页的统一资源定位符,以供爬虫服务器对抓取到的内容页的统一资源定位符进行存储。
在一些实施例中,该装置还包括:第二抓取单元,配置用于抓取与抓取到的内容页的统一资源定位符相关的网页信息;第三发送单元,配置用于向分布式存储服务器集群发送网页信息,以供分布式存储服务器集群对网页信息进行存储。
在一些实施例中,配置文件是用户通过用户终端利用预先建立的可视化工具进行设置而生成的。
第五方面,本申请实施例提供了一种数据抓取装置,该装置包括:第一接收单元,配置用于接收爬虫客户端发送的数据抓取请求;发送单元,配置用于向爬虫客户端发送包括待处理的配置文件的数据抓取文件,其中,配置文件是用户终端发送的、记录用户通过用户终端选取出的列表页的统一资源定位符;第二接收单元,配置用于接收爬虫客户端返回的抓取到的内容页的统一资源定位符,其中,内容页的统一资源定位符是爬虫客户端抓取到的列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符;存储单元,配置用于对内容页的统一资源定位符进行存储。
在一些实施例中,存储单元进一步配置用于:将内容页的统一资源定位符存储于本地数据库中,其中,本地数据库通过数据库链接链接到分布式存储服务器集群的数据库,分布式存储服务器集群的数据库用于存储网页信息,网页信息是爬虫客户端抓取的与内容页的统一资源定位符相关的、并发送给分布式存储服务器集群的网页信息。
在一些实施例中,配置文件是用户通过用户终端利用预先建立的可视化工具进行设置而生成的。
第六方面,本申请实施例还提供了一种终端,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行,使得上述一个或多个处理器实现本申请提供的数据抓取方法。
第七方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请提供的数据抓取方法。
第八方面,本申请实施例还提供了一种服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行,使得上述一个或多个处理器实现本申请提供的数据抓取方法。
第九方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请提供的数据抓取方法。
本申请实施例提供的数据抓取方法、***和装置,通过爬虫客户端与爬虫服务器之间进行的信息交互,使得爬虫客户端基于接收到的包括未处理的配置文件的数据抓取文件,对配置文件中记录的列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符进行抓取,并向爬虫服务器返回抓取到的内容页的统一资源定位符以供爬虫服务器对抓取到的内容页的统一资源定位符进行存储,从而通过简单的***配置,完成数据抓取工作。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是根据本申请的数据抓取***的一个实施例的时序图;
图2是本申请可以应用于其中的示例性***架构图;
图3是根据本申请的数据抓取***的又一个实施例的时序图;
图4是根据本申请的数据抓取方法的一个实施例的流程图;
图5是根据本申请的数据抓取方法的又一个实施例的流程图;
图6是根据本申请的数据抓取装置的一个实施例的结构示意图;
图7是根据本申请的数据抓取装置的又一个实施例的结构示意图;
图8是适于用来实现本申请实施例的服务器或终端设备的计算机***的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了根据本申请的数据抓取***的一实施例的时序图。
本实施例的数据抓取***包括:爬虫客户端和爬虫服务器;其中,爬虫客户端,用于向爬虫服务器发送数据抓取请求,接收爬虫服务器返回的包括待处理的配置文件的数据抓取文件,其中,配置文件是用户终端发送给爬虫服务器的、记录用户通过用户终端选取出的列表页的统一资源定位符,抓取列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符,并向爬虫服务器发送内容页的统一资源定位符;爬虫服务器,用于接收爬虫客户端发送的数据抓取请求,向爬虫客户端发送包括待处理的配置文件的数据抓取文件,接收爬虫客户端返回的抓取到的内容页的统一资源定位符,并对抓取到的内容页的统一资源定位符进行存储。
在本实施例的一些可选的实现方式中,上述数据抓取***还可以包括分布式存储服务器集群,其中,上述分布式存储服务器集群用于接收上述爬虫客户端发送的网页信息,上述网页信息是上述爬虫客户端抓取的与抓取到的内容页的统一资源定位符(UniformResource Locator,URL)关联的内容页所在的网页的网页信息,上述分布式存储服务器集群在接收到上述网页信息之后可以对上述网页信息进行存储,上述统一资源定位符也可以称为网址。
在本实施例中,上述数据抓取***还可以包括用户终端,其中,用户可以通过上述用户终端选取待抓取的列表页的统一资源定位符以抓取列表页的统一资源定位符关联的列表页上的相关数据。
如图1所示,在步骤101中,爬虫客户端向爬虫服务器发送数据抓取请求。
在这里,爬虫客户端可以向爬虫服务器发送数据抓取请求,例如,当爬虫客户端在初始化时或者接收到数据抓取指令时,可以向爬虫服务器发送数据抓取请求,上述数据抓取请求可以为数据抓取时用于获取数据抓取文件的请求。
在这里,上述爬虫客户端中可以内置一个无界面浏览器,例如,phantom JS,phantom JS是一个基于webkit的JavaScript API(Application Programming Interface,应用程序编程接口),使用webkit来编译解析执行JavaScript代码,webkit是一个开源的浏览器引擎。
在这里,上述爬虫服务器可以为分布式爬虫服务器集群。在整个集群环境中,可以采用去中心化的方式指定一台服务器充当集群管理者的角色,集群管理者可以负责收集集群环境中各个服务器的健康状态,并可以将死亡的服务器从集群中移除,并把新增的服务器加入到集群环境中。上述死亡的服务器可以为在预设时间长度的时间段内未进行工作的服务器。上述分布式爬虫服务器集群还可以包括页面(Web)管理界面,上述Web管理界面可以用于任务的查看、管理、队列中数据的积压和各个服务器的配置以及运行状态等。
在步骤102中,爬虫服务器向爬虫客户端发送包括待处理的配置文件的数据抓取文件。
在这里,在爬虫服务器接收到爬虫客户端发送的数据抓取请求之后,爬虫服务器可以向爬虫客户端发送包括待处理的配置文件的数据抓取文件。上述配置文件可以是上述用户终端发送给上述爬虫服务器的,且上述配置文件中可以记录用户通过上述用户终端所选取出的列表页的统一资源定位符。上述待处理的配置文件可以是未发送给爬虫客户端的配置文件,也可以为上述爬虫服务器在预设时间段内接收到的配置文件。上述列表页可以为包含多个内容页的超链接的页面,上述内容页可以为包含某一具体内容的页面,上述内容页也可以称为明细页。
在本实施例的一些可选的实现方式中,配置文件可以是用户通过上述用户终端利用预先建立的可视化工具进行设置而生成的,上述可视化工具可以是基于开源的浏览器引擎(例如,webkit)的图形化配置工具。作为示例,用户可以通过上述用户终端利用上述可视化工具打开一个网站,上述用户终端可以判断当前网页是列表页还是内容页,若为列表页,则弹出列表页的操作界面,如果这个列表页包含翻页的代码样式,则可以抽取翻页的链接以供用户确认是否抽取翻页之后的数据;用户确认之后,则会将列表页中包含的内容页的超链接框选出来以供用户进行确认;用户确认之后,则可以跳转到框选出的内容页,并提示用户选择所要抓取的数据;最后,上述用户终端可以将用户进行上述设置之后所生成的配置文件发送给上述爬虫服务器。上述配置文件还可以包括网站的基本信息、网站的翻页的表达式、网站列表页的表达式和网站详情页的表达式等相关信息。
在步骤103中,爬虫客户端抓取列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符。
在这里,爬虫客户端在步骤102中接收到爬虫服务器返回的记录用户通过上述用户终端选取出的列表页的统一资源定位符的配置文件之后,爬虫客户端可以首先获取上述选取出的列表页的统一资源定位符关联的列表页,并可以进行下载;之后,可以解析上述列表页中所包含的超链接所链接的内容页的统一资源定位符。超链接也可以称为超级链接,属于一个网页的一部分,是一种允许一个网页同其他网页或站点之间进行连接的元素;超链接是指从一个网页指向一个目标的连接关系,这个目标可以是另一个网页,也可以是相同网页上的不同位置。
在这里,爬虫客户端可以采用轮询的方式对网站数据进行抓取。用户可以预先通过用户终端对数据抓取时间间隔进行设置,爬虫客户端可以按照配置文件中的数据抓取时间间隔进行轮询;用户还可以指定智能化轮询方式,爬虫客户端可以根据网站的更新频率智能调整轮询的时间间隔。
在步骤104中,爬虫客户端向爬虫服务器发送内容页的统一资源定位符。
在这里,在步骤103中抓取到内容页的统一资源定位符之后,上述爬虫客户端可以向爬虫服务器发送抓取到的内容页的统一资源定位符。
在步骤105中,爬虫服务器接收爬虫客户端返回的抓取到的内容页的统一资源定位符。
在这里,爬虫服务器可以接收爬虫客户端返回的抓取到的内容页的统一资源定位符。在爬虫服务器接收到内容页的统一资源定位符之后,可以对内容页的统一资源定位符进行去重。
在这里,若爬虫服务器未在预设的抓取时间间隔内接收到爬虫客户端返回的内容页的统一资源定位符,则可以增大抓取时间间隔,并将增大之后的抓取时间间隔添加到配置文件中;若爬虫服务器在预设的抓取时间间隔内接收到爬虫客户端返回的内容页的统一资源定位符,则可以减小抓取时间间隔,并将减小之后的抓取时间间隔添加到配置文件中。爬虫服务器可以按照正态分布的规律对抓取时间间隔进行增大或者减小处理。作为示例,抓取时间间隔为1小时,若爬虫服务器未在1小时内接收到爬虫客户端返回的内容页的统一资源定位符,则可以将抓取时间间隔调整为1.2小时;若爬虫服务器在1小时内接收到爬虫客户端返回的内容页的统一资源定位符,则可以将抓取时间间隔调整为0.8小时。
在步骤106中,爬虫服务器对抓取到的内容页的统一资源定位符进行存储。
在这里,爬虫服务器可以对步骤105中接收到的爬虫客户端抓取到的内容页的统一资源定位符进行存储。
在这里,爬虫服务器可以采用文件数据库存储统一资源定位符,例如,可以采用Berkeley DB,Berkeley DB是一种高效的单机key-value(键-值)数据库、且是一个开源的文件数据库,介于关系数据库与内存数据库之间,使用方式与内存数据库类似,它提供的是一系列直接访问数据库的函数。分布式爬虫服务器集群中的每一个爬虫服务器均可以包括一个Berkeley DB,当有统一资源定位符需要存储时,根据一致性哈希(hash)算法,这个统一资源定位符会被分配到某一个服务器的Berkeley DB中进行存储。
在这里,当上述爬虫客户端需要将内容页的统一资源定位符关联的内容页所在网页的网页信息发送给分布式存储服务器集群时,且上述用户终端需要向爬虫服务器发送配置文件时,作为示例性的***架构图如图2所示。图2中,***架构200可以包括爬虫客户端2011、2012和2013,爬虫服务器202,用户终端2031、2032和2033,分布式存储服务器集群204,网络2051、2052、2053和2054,信息显示装置206和网页服务器207。其中,分布式存储服务器集群204中可以包括存储服务器2041、2042、2043和2044。网络2051用以在爬虫客户端2011、2012和2013和爬虫服务器202之间提供通信链路的介质。网络2052用以在爬虫服务器202和用户终端2031、2032和2033之间提供通信链路的介质。网络2053用以在爬虫客户端2011、2012和2013和分布式存储服务器集群204之间提供通信链路的介质。网络2054用以在爬虫客户端2011、2012、2013和网页服务器207之间提供通信链路的介质。网络2051、2052、2053和2054可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
爬虫服务器202可以通过网络2051与爬虫客户端2011、2012和2013交互,以接收或发送消息等。例如,爬虫客户端2011、2012和2013可以向爬虫服务器202发送数据抓取请求,并可以接收爬虫服务器202返回的数据抓取文件,爬虫客户端2011、2012和2013还可以向爬虫服务器202发送内容页的统一资源定位符。
爬虫服务器202还可以通过网络2052与用户终端2031、2032和2033交互,以接收或发送消息等。例如,爬虫服务器202可以接收用户终端2031、2032和2033发送的配置文件。
爬虫客户端2011、2012和2013可以通过网络2054与网页服务器207交互,以接收或发送消息等。例如,爬虫客户端2011、2012和2013可以根据配置文件,从网页服务器207中抓取列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符,以及内容页的统一资源定位符关联的内容页所在网页的网页信息。
爬虫客户端2011、2012和2013还可以通过网络2053与分布式存储服务器集群204交互,以接收或发送消息等。例如,爬虫客户端2011、2012和2013可以将抓取到的内容页的统一资源定位符关联的内容页所在网页的网页信息发送给分布式存储服务器集群204以供分布式存储服务器集群204对网页信息进行存储。
爬虫客户端2011、2012和2013可以是支持信息交互的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。爬虫客户端2011、2012和2013上可以安装有各种客户端应用,例如浏览器类应用、数据爬取工具等。
信息显示装置206可以是具有显示屏并且与爬虫服务器202进行本地交互的各种电子设备,其可以将爬虫服务器202的配置和运行状态进行显示。
应该理解,图2中的爬虫客户端、爬虫服务器、用户终端、网络、信息显示装置、网页服务器和分布式存储服务器集群以及分布式存储服务器集群中的存储服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的爬虫客户端、爬虫服务器、用户终端、网络、信息显示装置、网页服务器和分布式存储服务器集群以及分布式存储服务器集群中的存储服务器。
进一步参考图3,其示出了根据本申请的数据抓取***的又一实施例的时序图。
如图3所示,在步骤301中,爬虫客户端向爬虫服务器发送数据抓取请求。
在步骤302中,爬虫服务器向爬虫客户端发送包括待处理的配置文件的数据抓取文件。
在步骤303中,爬虫客户端抓取列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符。
在步骤304中,爬虫客户端向爬虫服务器发送内容页的统一资源定位符。
在步骤305中,爬虫服务器接收爬虫客户端返回的抓取到的内容页的统一资源定位符。
在步骤306中,爬虫服务器对抓取到的内容页的统一资源定位符进行存储。
在这里,步骤301-306的操作与步骤101-106的操作基本相同,在此不再赘述。
在步骤307中,爬虫客户端抓取与抓取到的内容页的统一资源定位符关联的内容页所在网页的网页信息。
在这里,爬虫客户端在步骤303中抓取列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符之后,爬虫客户端可以抓取上述所链接的各个内容页的统一资源定位符关联的内容页所在网页的网页信息,上述网页信息可以为所在网页上的网页内容信息。
在本实施例的一些可选的实现方式中,上述网页信息可以为网页结构化信息,网页结构化信息抽取就是将网页中的非结构化数据按照一定的需求抽取成结构化数据,网页结构化信息即是从网页中抽取出的结构化数据,其中,上述网页信息可以包括多个属性,上述多个属性中的至少一个属性对应的属性信息可以组成上述网页信息的属性信息集合。属性可以与网页信息的类别相关联,这些属性在抽取网页信息之前可以被预先设定出,网页信息的类别可以为预设的类别,如,新闻、电影、社交等等。作为示例,从新闻类网站中抽取的网页信息的属性可以为标题、所来源网站的名称、新闻时间、新闻摘要和新闻正文等;从电影类网站中抽取的网页信息的属性可以为电影名称、导演名称、主演名称、编剧名称等。
在步骤308中,爬虫客户端向分布式存储服务器集群发送网页信息。
在这里,在步骤307中抓取到内容页的统一资源定位符关联的内容页所在网页的网页信息之后,爬虫客户端可以向分布式存储服务器集群发送上述网页信息。
在步骤309中,分布式存储服务器集群对网页信息进行存储。
在这里,分布式存储服务器集群在接收到爬虫客户端发送的网页信息之后,可以对上述网页信息进行存储。分布式存储服务器集群可以将上述网页信息存储于数据库中。
在这里,分布式存储服务器集群可以确定数据库中已存储的网页信息的统一资源定位符是否与接收到的网页信息的统一资源定位符相同,若相同,则可以存储接收到的网页信息,并删除已存储的网页信息。
在本实施例的一些可选的实现方式中,在对上述网页信息存储之前,分布式存储服务器集群可以首先获取各个网页信息的属性信息集合,对于属性信息集合相同的至少两个网页信息,可以确定除上述属性信息集合中的属性信息对应的属性之外的其他属性对应的属性信息是否相同;若相同,则可以保留上述至少两个网页信息中的任一网页信息,并删除上述至少两个网页信息中除保留的网页信息之外的其它网页信息,并可以将上述至少两个网页信息所来源的统一资源定位符作为上述保留的网页信息的来源信息。
在本实施例的一些可选的实现方式中,若确定出除上述属性信息集合中的属性信息对应的属性之外的其他属性对应的属性信息不相同,则可以针对上述至少两个网页信息中的每个网页信息,标识出该网页信息与上述至少两个网页信息中除该网页信息之外的网页信息不相同的属性,之后,可以提供人工审核界面以供审核人员对上述不相同的属性进行人工审核。
作为示例,当抓取的网页信息为某一上市公司的高管数据时,可以将“姓名”、“年龄”和“职务”这三个属性对应的属性信息组成这个网页信息的属性信息集合,当获取到网页信息A与网页信息B的属性信息集合与抓取到的网页信息的属性信息集合相同,则可以确定除“姓名”、“年龄”和“职务”这三个属性之外的其它属性对应的属性信息是否相同;若确定出网页信息A的其它属性对应的属性信息与上述抓取到的网页信息的其它属性对应的属性信息相同,则可以保留网页信息A和上述抓取到的网页信息中的任一个,并删除除保留的网页信息之外的网页信息,将网页信息A所来源的统一资源定位符A和上述抓取到的网页信息所来源的统一资源定位符C作为上述保留的网页信息的来源信息;若确定出网页信息B的其它属性对应的属性信息与上述抓取到的网页信息的其它属性对应的属性信息不相同,则可以标识出网页信息B和上述抓取到的网页信息中的不相同的属性。
在本实施例的一些可选的实现方式中,爬虫服务器可以将上述抓取到的内容页的统一资源定位符存储于本地数据库中,上述本地数据库可以为连接数据库(LinkDatabase,Link DB),上述本地数据库可以通过数据库链接(DB link)链接到上述分布式存储服务器集群的数据库,分布式存储服务器集群的数据库可以用于存储上述网页信息。数据库链接是一个通道,当需要跨本地数据库访问另一个数据库表中的数据时,本地数据库中需要创建远程数据库的数据库链接,通过数据库链接可以像访问本地数据库一样访问远程数据库表中的数据。
图4示出了根据本申请的数据抓取方法的一个实施例的流程400。该数据抓取方法,包括以下步骤:
步骤401,向爬虫服务器发送数据抓取请求。
在本实施例中,数据抓取方法运行于其上的电子设备(例如,图2所示的爬虫客户端)可以通过有线连接方式或者无线连接方式向爬虫服务器发送数据抓取请求,例如,当上述电子设备在初始化时或者接收到数据抓取指令时,可以向爬虫服务器发送数据抓取请求,上述数据抓取请求可以为数据抓取时用于获取数据抓取文件的请求。
在本实施例中,上述电子设备中可以内置一个无界面浏览器,例如,phantom JS,phantom JS是一个基于webkit的JavaScript API,使用webkit来编译解析执行JavaScript代码,webkit是一个开源的浏览器引擎。
在本实施例中,上述爬虫服务器可以为分布式爬虫服务器集群。在整个集群环境中,可以采用去中心化的方式指定一台爬虫服务器充当集群管理者的角色,集群管理者可以负责收集集群环境中各个爬虫服务器的健康状态,并可以将死亡的爬虫服务器从集群中移除,并把新增的爬虫服务器加入到集群环境中。上述死亡的爬虫服务器可以为在预设时间长度的时间段内未进行工作的爬虫服务器。上述分布式爬虫服务器集群还可以包括页面管理界面,上述页面管理界面可以用于任务的查看、管理、队列中数据的积压和各个爬虫服务器的配置以及运行状态等。
步骤402,接收爬虫服务器返回的包括待处理的配置文件的数据抓取文件。
在本实施例中,上述电子设备可以接收爬虫服务器返回的包括待处理的配置文件的数据抓取文件。上述配置文件可以是上述用户终端发送给上述爬虫服务器的,且上述配置文件中可以记录用户通过上述用户终端所选取出的列表页的统一资源定位符。上述待处理的配置文件可以是未发送给上述电子设备的配置文件,也可以为上述爬虫服务器在预设时间段内接收到的配置文件。上述列表页可以为包含多个内容页的超链接的页面,上述内容页可以为包含某一具体内容的页面,上述内容页也可以称为明细页。
在本实施例的一些可选的实现方式中,配置文件可以是用户通过上述用户终端利用预先建立的可视化工具进行设置而生成的,上述可视化工具可以是基于开源的浏览器引擎的图形化配置工具。作为示例,用户可以通过上述用户终端利用上述可视化工具打开一个网站,上述用户终端可以判断当前网页是列表页还是内容页,若为列表页,则弹出列表页的操作界面,如果这个列表页包含翻页的代码样式,则可以抽取翻页的链接以供用户确认是否抽取翻页之后的数据;用户确认之后,则会将列表页中包含的内容页的超链接框选出来以供用户进行确认;用户确认之后,则可以跳转到框选出的内容页,并提示用户选择所要抓取的数据;最后,上述用户终端可以将用户进行上述设置之后所生成的配置文件发送给上述爬虫服务器。
步骤403,抓取列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符。
在本实施例中,在步骤402中接收到爬虫服务器返回的记录用户通过上述用户终端选取出的列表页的统一资源定位符的配置文件之后,上述电子设备可以首先获取上述选取出的列表页的统一资源定位符关联的列表页,并可以进行下载;之后,可以解析上述列表页中所包含的超链接所链接的内容页的统一资源定位符。超链接也可以称为超级链接,属于一个网页的一部分,是一种允许一个网页同其他网页或站点之间进行连接的元素;超链接是指从一个网页指向一个目标的连接关系,这个目标可以是另一个网页,也可以是相同网页上的不同位置。
在本实施例中,上述电子设备可以采用轮询的方式对网站数据进行抓取。用户可以预先通过用户终端对数据抓取时间间隔进行设置,上述电子设备可以按照配置文件中的数据抓取时间间隔进行轮询;用户还可以指定智能化轮询方式,上述电子设备可以根据网站的更新频率智能调整轮询的时间间隔。
步骤404,向爬虫服务器发送抓取到的内容页的统一资源定位符,以供爬虫服务器对抓取到的内容页的统一资源定位符进行存储。
在本实施例中,在步骤403中抓取到内容页的统一资源定位符之后,上述电子设备可以向爬虫服务器发送抓取到的内容页的统一资源定位符,爬虫服务器在接收到上述电子设备返回的抓取到的内容页的统一资源定位符之后,可以对接收到的内容页的统一资源定位符进行存储。爬虫服务器在对接收到内容页的统一资源定位符存储之前,可以对内容页的统一资源定位符去重。
在本实施例的一些可选的实现方式中,在抓取到列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符之后,上述电子设备可以抓取上述所链接的各个内容页的统一资源定位符关联的内容页所在网页的网页信息,之后,可以向分布式存储服务器集群发送上述网页信息以供分布式存储服务器集群对上述网页信息进行存储。
在本实施例的一些可选的实现方式中,分布式存储服务器集群在对上述网页信息存储之前,可以首先获取各个网页信息的属性信息集合,对于属性信息集合相同的至少两个网页信息,可以确定除上述属性信息集合中的属性信息对应的属性之外的其他属性对应的属性信息是否相同;若相同,则可以保留上述至少两个网页信息中的任一网页信息,并删除上述至少两个网页信息中除保留的网页信息之外的其它网页信息,并可以将上述至少两个网页信息所来源的统一资源定位符作为上述保留的网页信息的来源信息。
在本实施例的一些可选的实现方式中,若分布式存储服务器集群确定出除上述属性信息集合中的属性信息对应的属性之外的其他属性对应的属性信息不相同,则可以针对上述至少两个网页信息中的每个网页信息,标识出该网页信息与上述至少两个网页信息中除该网页信息之外的网页信息不相同的属性。
本申请的上述实施例提供的方法通过向爬虫服务器发送数据抓取请求并接收爬虫服务器返回的包括未处理的配置文件的数据抓取文件,通过对配置文件中记录的列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符进行抓取,并向爬虫服务器返回抓取到的内容页的统一资源定位符以供爬虫服务器对抓取到的内容页的统一资源定位符进行存储,从而通过简单的***配置,完成数据抓取工作。
进一步参考图5,其示出了数据抓取方法的又一个实施例的流程500。该数据抓取方法的流程500,包括以下步骤:
步骤501,接收爬虫客户端发送的数据抓取请求。
在本实施例中,数据抓取方法运行于其上的电子设备(例如图2所示的爬虫服务器)可以通过有线连接方式或者无线连接方式接收爬虫客户端发送的数据抓取请求,上述数据抓取请求可以为数据抓取时用于获取数据抓取文件的请求。
在本实施例中,上述爬虫客户端中可以内置一个无界面浏览器,例如,phantomJS,phantom JS是一个基于webkit的JavaScript API,使用webkit来编译解析执行JavaScript代码,webkit是一个开源的浏览器引擎。
在本实施例中,上述电子设备可以存在于分布式爬虫服务器集群中。在整个集群环境中,可以采用去中心化的方式指定一台服务器充当集群管理者的角色,例如,上述电子设备可以被指定为集群管理者,集群管理者可以负责收集集群环境中各个服务器的健康状态,并可以将死亡的服务器从集群中移除,并把新增的服务器加入到集群环境中。上述死亡的服务器可以为在预设时间长度的时间段内未进行工作的服务器。上述分布式爬虫服务器集群还可以包括页面管理界面,上述页面管理界面可以用于任务的查看、管理、队列中数据的积压和各个服务器的配置以及运行状态等。
步骤502,向爬虫客户端发送包括待处理的配置文件的数据抓取文件。
在本实施例中,在接收到爬虫客户端发送的数据抓取请求之后,上述电子设备可以向爬虫客户端发送包括待处理的配置文件的数据抓取文件。上述配置文件可以是上述用户终端发送给上述电子设备的,且上述配置文件中可以记录用户通过上述用户终端所选取出的列表页的统一资源定位符。上述待处理的配置文件可以是未发送给爬虫客户端的配置文件,也可以为上述电子设备在预设时间段内接收到的配置文件。上述列表页可以为包含多个内容页的超链接的页面,上述内容页可以为包含某一具体内容的页面,上述内容页也可以称为明细页。
在本实施例的一些可选的实现方式中,配置文件可以是用户通过上述用户终端利用预先建立的可视化工具进行设置而生成的,上述可视化工具可以是基于开源的浏览器引擎的图形化配置工具。作为示例,用户可以通过上述用户终端利用上述可视化工具打开一个网站,上述用户终端可以判断当前网页是列表页还是内容页,若为列表页,则弹出列表页的操作界面,如果这个列表页包含翻页的代码样式,则可以抽取翻页的链接以供用户确认是否抽取翻页之后的数据;用户确认之后,则会将列表页中包含的内容页的超链接框选出来以供用户进行确认;用户确认之后,则可以跳转到框选出的内容页,并提示用户选择所要抓取的数据;最后,上述用户终端可以将用户进行上述设置之后所生成的配置文件发送给上述爬虫服务器。上述配置文件还可以包括网站的基本信息、网站的翻页的表达式、网站列表页的表达式和网站详情页的表达式等相关信息。
步骤503,接收爬虫客户端返回的抓取到的内容页的统一资源定位符。
在本实施例中,上述电子设备可以接收爬虫客户端返回的抓取到的内容页的统一资源定位符。在上述电子设备接收到内容页的统一资源定位符之后,可以对内容页的统一资源定位符进行去重。
在本实施例中,爬虫客户端可以首先获取上述选取出的列表页的统一资源定位符关联的列表页,并可以进行下载;之后,可以解析上述列表页中所包含的超链接所链接的内容页的统一资源定位符。超链接也可以称为超级链接,属于一个网页的一部分,是一种允许一个网页同其他网页或站点之间进行连接的元素;超链接是指从一个网页指向一个目标的连接关系,这个目标可以是另一个网页,也可以是相同网页上的不同位置。
在本实施例中,若上述电子设备未在预设的抓取时间间隔内接收到爬虫客户端返回的内容页的统一资源定位符,则可以增大抓取时间间隔,并将增大之后的抓取时间间隔添加到配置文件中;若上述电子设备在预设的抓取时间间隔内接收到爬虫客户端返回的内容页的统一资源定位符,则可以减小抓取时间间隔,并将减小之后的抓取时间间隔添加到配置文件中。上述电子设备可以按照正态分布的规律对抓取时间间隔进行增大或者减小处理。
步骤504,对内容页的统一资源定位符进行存储。
在本实施例中,在步骤503中接收到爬虫客户端返回的抓取到的内容页的统一资源定位符之后,上述电子设备可以对上述内容页的统一资源定位符进行存储。
在本实施例中,上述电子设备可以采用文件数据库存储统一资源定位符,例如,可以采用Berkeley DB,Berkeley DB是一种高效的单机key-value数据库、且是一个开源的文件数据库,介于关系数据库与内存数据库之间,使用方式与内存数据库类似,它提供的是一系列直接访问数据库的函数。上述电子设备可以包括Berkeley DB,当有统一资源定位符需要存储时,根据一致性哈希算法,这个统一资源定位符可以被分配到上述电子设备的Berkeley DB中进行存储。
在本实施例的一些可选的实现方式中,上述电子设备可以将上述抓取到的内容页的统一资源定位符存储于本地数据库中,上述本地数据库可以为链接数据库,上述本地数据库可以通过数据库链接链接到分布式存储服务器集群的数据库,分布式存储服务器集群的数据库可以用于存储上述网页信息。数据库链接是一个通道,当需要跨本地数据库访问另一个数据库表中的数据时,本地数据库中需要创建远程数据库的数据库链接,通过数据库链接可以像访问本地数据库一样访问远程数据库表中的数据。
本申请的上述实施例提供的方法通过接收爬虫客户端发送的数据抓取请求,并向爬虫客户端发送包括未处理的配置文件的数据抓取文件,以供爬虫客户端基于配置文件中记录的列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符进行抓取,接收爬虫客户端返回的抓取到的内容页的统一资源定位符并进行存储,从而通过简单的***配置,完成数据抓取工作。
进一步参考图6,作为对上述各图所示方法的实现,本申请提供了一种数据抓取装置的一个实施例,该装置实施例与图4所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例的数据抓取装置600包括:第一发送单元601、接收单元602、第一抓取单元603和第二发送单元604。其中,第一发送单元601配置用于向爬虫服务器发送数据抓取请求;接收单元602配置用于接收爬虫服务器返回的包括待处理的配置文件的数据抓取文件,其中,配置文件是用户终端发送给爬虫服务器的、记录用户通过用户终端选取出的列表页的统一资源定位符;第一抓取单元603配置用于抓取列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符;第二发送单元604配置用于向爬虫服务器发送抓取到的内容页的统一资源定位符,以供爬虫服务器对抓取到的内容页的统一资源定位符进行存储。
在本实施例中,数据抓取装置600的第一发送单元601、接收单元602、第一抓取单元603和第二发送单元604的具体处理可以参考图4对应实施例中的步骤401、步骤402、步骤403和步骤404。
在本实施例的一些可选的实现方式中,数据抓取装置600还可以包括第二抓取单元(图中未示出)和第三发送单元(图中未示出)。在抓取到列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符之后,上述第二抓取单元可以抓取上述所链接的各个内容页的统一资源定位符关联的内容页所在网页的网页信息,之后,上述第三发送单元可以向分布式存储服务器集群发送上述网页信息以供分布式存储服务器集群对上述网页信息进行存储。
在本实施例的一些可选的实现方式中,配置文件可以是用户通过上述用户终端利用预先建立的可视化工具进行设置而生成的,上述可视化工具可以是基于开源的浏览器引擎的图形化配置工具。
进一步参考图7,作为对上述各图所示方法的实现,本申请提供了一种数据抓取装置的一个实施例,该装置实施例与图5所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图7所示,本实施例的数据抓取装置700包括:第一接收单元701、发送单元702、第二接收单元703和存储单元704。其中,第一接收单元701配置用于接收爬虫客户端发送的数据抓取请求;发送单元702配置用于向爬虫客户端发送包括待处理的配置文件的数据抓取文件,其中,配置文件是用户终端发送的、记录用户通过用户终端选取出的列表页的统一资源定位符;第二接收单元703配置用于接收爬虫客户端返回的抓取到的内容页的统一资源定位符,其中,内容页的统一资源定位符是爬虫客户端抓取到的列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符;存储单元704配置用于对内容页的统一资源定位符进行存储。
在本实施例中,数据抓取装置700的第一接收单元701、发送单元702、第二接收单元703和存储单元704的具体处理可以参考图5对应实施例中的步骤501、步骤501、步骤503和步骤504。
在本实施例的一些可选的实现方式中,上述存储单元704可以将上述抓取到的内容页的统一资源定位符存储于本地数据库中,上述本地数据库可以为链接数据库,上述本地数据库可以通过数据库链接链接到分布式存储服务器集群的数据库,分布式存储服务器集群的数据库可以用于存储上述网页信息。数据库链接是一个通道,当需要跨本地数据库访问另一个数据库表中的数据时,本地数据库中需要创建远程数据库的数据库链接,通过数据库链接可以像访问本地数据库一样访问远程数据库表中的数据。
在本实施例的一些可选的实现方式中,配置文件可以是用户通过上述用户终端利用预先建立的可视化工具进行设置而生成的,上述可视化工具可以是基于开源的浏览器引擎的图形化配置工具。
下面参考图8,其示出了适于用来实现本申请实施例的服务器或终端设备的计算机***800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,计算机***800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有***800操作所需的各种程序和数据。CPU801、ROM 802以及RAM803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、按键等的输入部分806;包括诸如液晶显示器(LCD)以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一发送单元、接收单元、第一抓取单元和第二发送单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一发送单元还可以被描述为“向爬虫服务器发送数据抓取请求的单元”。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一接收单元、发送单元、第二接收单元和存储单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一接收单元还可以被描述为“接收爬虫客户端发送的数据抓取请求的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的终端中所包含的;也可以是单独存在,而未装配入该终端中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该终端执行时,使得该终端:向爬虫服务器发送数据抓取请求;接收爬虫服务器返回的包括待处理的配置文件的数据抓取文件,其中,配置文件是用户终端发送给爬虫服务器的、记录用户通过用户终端选取出的列表页的统一资源定位符;抓取列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符;向爬虫服务器发送抓取到的内容页的统一资源定位符,以供爬虫服务器对抓取到的内容页的统一资源定位符进行存储。或者,上述非易失性计算机存储介质存储有一个或者多个程序,当一个或者多个程序被一个设备执行时,使得设备:接收爬虫客户端发送的数据抓取请求;向爬虫客户端发送包括待处理的配置文件的数据抓取文件,其中,配置文件是用户终端发送的、记录用户通过用户终端选取出的列表页的统一资源定位符;接收爬虫客户端返回的抓取到的内容页的统一资源定位符,其中,内容页的统一资源定位符是爬虫客户端抓取到的列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符;对内容页的统一资源定位符进行存储。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (20)
1.一种数据抓取***,其特征在于,所述***包括爬虫客户端和爬虫服务器;
所述爬虫客户端,用于向所述爬虫服务器发送数据抓取请求,接收所述爬虫服务器返回的包括待处理的配置文件的数据抓取文件,其中,所述配置文件是用户终端发送给所述爬虫服务器的、记录用户通过所述用户终端选取出的列表页的统一资源定位符,抓取所述列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符,并向所述爬虫服务器发送所述内容页的统一资源定位符;
所述爬虫客户端,用于抓取与所述抓取到的内容页的统一资源定位符关联的内容页所在网页的网页信息;向分布式存储服务器集群发送所述网页信息,以供所述分布式存储服务器集群对所述网页信息进行存储,其中,所述分布式存储服务器所存储的任意两个网页信息分别包括的属性所对应的属性信息之间、存在至少一个不同的属性信息;所述爬虫服务器,用于接收所述爬虫客户端发送的数据抓取请求,向所述爬虫客户端发送包括待处理的配置文件的数据抓取文件,接收所述爬虫客户端返回的抓取到的内容页的统一资源定位符,并对所述抓取到的内容页的统一资源定位符进行存储。
2.根据权利要求1所述的***,其特征在于,所述***还包括分布式存储服务器集群。
3.根据权利要求1所述的***,其特征在于,所述爬虫服务器还用于:
将所述抓取到的内容页的统一资源定位符存储于本地数据库中,其中,所述本地数据库通过数据库链接链接到所述分布式存储服务器集群的数据库,所述分布式存储服务器集群的数据库用于存储所述网页信息。
4.根据权利要求2或3所述的***,其特征在于,所述网页信息为网页结构化信息,其中,所述网页信息包括多个属性,所述多个属性中的至少一个属性对应的属性信息组成所述网页信息的属性信息集合;以及
所述分布式存储服务器集群还用于:
针对属性信息集合相同的至少两个网页信息,确定除所述属性信息集合中的属性信息对应的属性之外的属性对应的属性信息是否相同;
响应于确定出除所述属性信息集合中的属性信息对应的属性之外的属性对应的属性信息相同,保留所述至少两个网页信息中的任一网页信息,删除所述至少两个网页信息中除保留的网页信息之外的网页信息,并将所述至少两个网页信息所来源的统一资源定位符作为所述保留的网页信息的来源信息。
5.根据权利要求4所述的***,其特征在于,
所述分布式存储服务器集群还用于:
响应于确定出除所述属性信息集合中的属性信息对应的属性之外的属性对应的属性信息不相同,针对所述至少两个网页信息中的每个网页信息,标识出该网页信息与所述至少两个网页信息中除该网页信息之外的网页信息不相同的属性。
6.根据权利要求1所述的***,其特征在于,所述配置文件是用户通过所述用户终端利用预先建立的可视化工具进行设置而生成的。
7.一种数据抓取方法,其特征在于,所述方法包括:
向爬虫服务器发送数据抓取请求;
接收所述爬虫服务器返回的包括待处理的配置文件的数据抓取文件,其中,所述配置文件是用户终端发送给所述爬虫服务器的、记录用户通过所述用户终端选取出的列表页的统一资源定位符;
抓取所述列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符;
向所述爬虫服务器发送抓取到的内容页的统一资源定位符,以供所述爬虫服务器对所述抓取到的内容页的统一资源定位符进行存储;
抓取与所述抓取到的内容页的统一资源定位符关联的内容页所在网页的网页信息;向分布式存储服务器集群发送所述网页信息,以供所述分布式存储服务器集群对所述网页信息进行存储,其中,所述分布式存储服务器所存储的任意两个网页信息分别包括的属性所对应的属性信息之间、存在至少一个不同的属性信息。
8.根据权利要求7所述的方法,其特征在于,所述配置文件是用户通过所述用户终端利用预先建立的可视化工具进行设置而生成的。
9.一种数据抓取方法,其特征在于,所述方法包括:
接收爬虫客户端发送的数据抓取请求;
向所述爬虫客户端发送包括待处理的配置文件的数据抓取文件,其中,所述配置文件是用户终端发送的、记录用户通过所述用户终端选取出的列表页的统一资源定位符;
接收所述爬虫客户端返回的抓取到的内容页的统一资源定位符,其中,所述内容页的统一资源定位符是所述爬虫客户端抓取到的列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符;
将所述内容页的统一资源定位符存储于本地数据库中,其中,所述本地数据库用于链接到分布式存储服务器,所述分布式存储服务器所存储的任意两个网页信息分别包括的属性所对应的属性信息之间、存在至少一个不同的属性信息。
10.根据权利要求9所述的方法,其特征在于,所述本地数据库通过数据库链接链接到分布式存储服务器集群的数据库,所述分布式存储服务器集群的数据库用于存储网页信息,所述网页信息是所述爬虫客户端抓取的与所述内容页的统一资源定位符相关的、并发送给分布式存储服务器集群的网页信息。
11.根据权利要求9所述的方法,其特征在于,所述配置文件是用户通过所述用户终端利用预先建立的可视化工具进行设置而生成的。
12.一种数据抓取装置,其特征在于,所述装置包括:
第一发送单元,配置用于向爬虫服务器发送数据抓取请求;
接收单元,配置用于接收所述爬虫服务器返回的包括待处理的配置文件的数据抓取文件,其中,所述配置文件是用户终端发送给所述爬虫服务器的、记录用户通过所述用户终端选取出的列表页的统一资源定位符;
第一抓取单元,配置用于抓取所述列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符;
第二发送单元,配置用于向所述爬虫服务器发送抓取到的内容页的统一资源定位符,以供所述爬虫服务器对所述抓取到的内容页的统一资源定位符进行存储;
网页信息发送单元,配置用于抓取与所述抓取到的内容页的统一资源定位符关联的内容页所在网页的网页信息;向分布式存储服务器集群发送所述网页信息,以供所述分布式存储服务器集群对所述网页信息进行存储,其中,所述分布式存储服务器所存储的任意两个网页信息分别包括的属性所对应的属性信息之间、存在至少一个不同的属性信息。
13.根据权利要求12所述的装置,其特征在于,所述配置文件是用户通过所述用户终端利用预先建立的可视化工具进行设置而生成的。
14.一种数据抓取装置,其特征在于,所述装置包括:
第一接收单元,配置用于接收爬虫客户端发送的数据抓取请求;
发送单元,配置用于向所述爬虫客户端发送包括待处理的配置文件的数据抓取文件,其中,所述配置文件是用户终端发送的、记录用户通过所述用户终端选取出的列表页的统一资源定位符;
第二接收单元,配置用于接收所述爬虫客户端返回的抓取到的内容页的统一资源定位符,其中,所述内容页的统一资源定位符是所述爬虫客户端抓取到的列表页的统一资源定位符关联的列表页中所包含的超链接所链接的内容页的统一资源定位符;
存储单元,配置用于将所述内容页的统一资源定位符存储于本地数据库中,其中,所述本地数据库用于链接到分布式存储服务器,所述分布式存储服务器所存储的任意两个网页信息分别包括的属性所对应的属性信息之间、存在至少一个不同的属性信息。
15.根据权利要求14所述的装置,其特征在于,所述本地数据库通过数据库链接链接到分布式存储服务器集群的数据库,所述分布式存储服务器集群的数据库用于存储网页信息,所述网页信息是所述爬虫客户端抓取的与所述内容页的统一资源定位符相关的、并发送给所述分布式存储服务器集群的网页信息。
16.根据权利要求14所述的装置,其特征在于,所述配置文件是用户通过所述用户终端利用预先建立的可视化工具进行设置而生成的。
17.一种终端,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求7-8中任一所述的方法。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求7-8中任一所述的方法。
19.一种服务器,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求9-11中任一所述的方法。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求9-11中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710516470.7A CN109213824B (zh) | 2017-06-29 | 2017-06-29 | 数据抓取***、方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710516470.7A CN109213824B (zh) | 2017-06-29 | 2017-06-29 | 数据抓取***、方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109213824A CN109213824A (zh) | 2019-01-15 |
CN109213824B true CN109213824B (zh) | 2022-03-04 |
Family
ID=64976803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710516470.7A Active CN109213824B (zh) | 2017-06-29 | 2017-06-29 | 数据抓取***、方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109213824B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110765334A (zh) * | 2019-09-10 | 2020-02-07 | 北京字节跳动网络技术有限公司 | 数据抓取方法、***、介质和电子设备 |
CN111428115A (zh) * | 2020-04-16 | 2020-07-17 | 行吟信息科技(上海)有限公司 | 一种网页信息处理方法及装置 |
CN111966880A (zh) * | 2020-08-17 | 2020-11-20 | 江苏百达智慧网络科技有限公司 | 可视化网站内容采集方法和*** |
CN113553489B (zh) * | 2021-07-29 | 2023-06-23 | 北京百度网讯科技有限公司 | 内容抓取的方法、装置、设备、介质及程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536993A (zh) * | 2014-12-10 | 2015-04-22 | 北京奇虎科技有限公司 | 收藏网页的处理方法、收藏网页的处理装置和客户端 |
CN105045838A (zh) * | 2015-07-01 | 2015-11-11 | 华东师范大学 | 基于分布式存储***的网络爬虫*** |
CN105279272A (zh) * | 2015-10-30 | 2016-01-27 | 南京未来网络产业创新有限公司 | 一种基于分布式网络爬虫的内容聚合方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567313B (zh) * | 2010-12-07 | 2016-08-24 | 盛乐信息技术(上海)有限公司 | 递进式网页库去重***及其实现方法 |
KR101244357B1 (ko) * | 2011-08-11 | 2013-03-18 | 한국과학기술정보연구원 | 웹 자원 아카이빙을 위한 장치 및 방법 |
CN102937989B (zh) * | 2012-10-29 | 2016-06-22 | 北京腾逸科技发展有限公司 | 并行化分布式互联网数据抓取方法及其*** |
CN103034732A (zh) * | 2012-12-26 | 2013-04-10 | 福建师范大学 | 用于链接精确抓取的网络机器人算法 |
CN103279507B (zh) * | 2013-05-16 | 2016-12-28 | 北京尚友通达信息技术有限公司 | 网页爬虫操作方法和*** |
CN104750804A (zh) * | 2015-03-24 | 2015-07-01 | 南京途牛科技有限公司 | 一种插件式可配置的垂直领域网络爬虫实现方法 |
-
2017
- 2017-06-29 CN CN201710516470.7A patent/CN109213824B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536993A (zh) * | 2014-12-10 | 2015-04-22 | 北京奇虎科技有限公司 | 收藏网页的处理方法、收藏网页的处理装置和客户端 |
CN105045838A (zh) * | 2015-07-01 | 2015-11-11 | 华东师范大学 | 基于分布式存储***的网络爬虫*** |
CN105279272A (zh) * | 2015-10-30 | 2016-01-27 | 南京未来网络产业创新有限公司 | 一种基于分布式网络爬虫的内容聚合方法 |
Non-Patent Citations (1)
Title |
---|
一种基于动态网页解析的微博数据抓取方法;钟明翔等;《舰船电子工程》;20151020(第10期);101-105 * |
Also Published As
Publication number | Publication date |
---|---|
CN109213824A (zh) | 2019-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109997126B (zh) | 事件驱动提取、变换、加载(etl)处理 | |
US10803016B2 (en) | Predictive models of file access patterns by application and file type | |
US11423041B2 (en) | Maintaining data lineage to detect data events | |
CN109213824B (zh) | 数据抓取***、方法和装置 | |
CN107480277B (zh) | 用于网站日志采集的方法及装置 | |
CN109829121B (zh) | 一种点击行为数据上报的方法和装置 | |
US11200231B2 (en) | Remote query optimization in multi data sources | |
US11423096B2 (en) | Method and apparatus for outputting information | |
US20150286663A1 (en) | Remote processing of memory and files residing on endpoint computing devices from a centralized device | |
US10855750B2 (en) | Centralized management of webservice resources in an enterprise | |
US10242102B2 (en) | Network crawling prioritization | |
CN110929128A (zh) | 一种数据爬取方法、装置、设备和介质 | |
US10338972B1 (en) | Prefix based partitioned data storage | |
CN110866031B (zh) | 数据库访问路径的优化方法、装置、计算设备以及介质 | |
US20170147543A1 (en) | Enabling legacy web applications for mobile devices | |
CN110688355A (zh) | 变更容器状态的方法和装置 | |
CN111988405B (zh) | 负载均衡装置的报文重写方法及负载均衡装置 | |
US11216490B2 (en) | Method and system for the creation and maintenance of a web presence data store built automatically for all entities with a social media presence | |
US11403539B2 (en) | Pattern-optimized session logs for improved web analytics | |
US10839030B2 (en) | Persistent filter content refinement system | |
CN113127416A (zh) | 数据查询方法和装置 | |
CN110874302A (zh) | 一种埋点配置信息的确定方法和装置 | |
CN103067496A (zh) | 客户端缓存机制管理方法和服务器 | |
CN112448931B (zh) | 网络劫持监控方法和装置 | |
CN110750410B (zh) | 一种监听数据库日志的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |