CN104572901A - 网页数据的下载方法及装置 - Google Patents
网页数据的下载方法及装置 Download PDFInfo
- Publication number
- CN104572901A CN104572901A CN201410827793.4A CN201410827793A CN104572901A CN 104572901 A CN104572901 A CN 104572901A CN 201410827793 A CN201410827793 A CN 201410827793A CN 104572901 A CN104572901 A CN 104572901A
- Authority
- CN
- China
- Prior art keywords
- network address
- data
- download
- secondary network
- message queue
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开是关于一种网页数据的下载方法及装置,属于互联网技术领域。所述方法包括:获取待抓取网页数据的一级网址;从一级网址的网页数据中,提取多个二级网址,一级网址的网页数据中包含多个二级网址及干扰数据;将多个二级网址加入第一消息队列;基于第一消息队列,下载二级网址对应的网页数据。本公开在获取到待抓取网页数据的一级网址后,从一级网址的网页数据中,提取多个二级网址,并将多个二级网址加入第一消息队列,进而基于第一消息队列,下载二级网址对应的网页数据。由于借助消息队列下载网页数据,无需获知地址端口等配置信息,基于消息队列中存储的二级网址下载,因此,降低了资源消耗,简化了下载的复杂度。
Description
技术领域
本公开涉及互联网技术领域,尤其涉及一种网页数据的下载方法及装置。
背景技术
随着互联网技术的发展,互联网上的数据爆炸性增长。传统的单机网络爬虫系统因获取网页数据的速度较慢、准确性较低,很难适应大规模的网页数据获取需求。为了提高获取速度以及准确性,分布式网络爬虫系统应运而生。分布式网络爬虫系统作为一种新的数据获取系统,具有单机网络爬虫系统无法比拟的数据采集速度和规模,可快速地为抓取到更多的网页数据。
分布式网络爬虫系统由调度器和多个下载器组成,其中,调度器负责为各个下载器分配待下载网址,下载器用于根据待下载网址从互联网上下载网页数据。在分布式网络爬虫系统中,调度器和下载器间采用RPC(Remote ProcedureCall,远程过程调度)协议进行通信。基于分布式网络爬虫系统,相关技术在下载网页数据时,调度器和下载器需要先获知彼此的地址端口等配置信息,然后调度器根据待下载网址的数量,确定为各个下载器分配的待下载网址,进而通过各个下载器的地址端口将待下载地址发送至各个下载器,基于接收到的下载网址,下载器就可从互联网上下载网页数据。
发明内容
为克服相关技术中存在的问题,本公开提供一种网页数据的下载方法及装置。
根据本公开实施例的第一方面,提供一种网页数据的下载方法,该方法包括:
获取待抓取网页数据的一级网址;
从所述一级网址的网页数据中,提取多个二级网址,所述一级网址的网页数据中包含多个二级网址及干扰数据;
将所述多个二级网址加入第一消息队列;
基于所述第一消息队列,下载二级网址对应的网页数据。
结合第一方面,在第一方面的第一种可能的实现方式中,所述基于所述第一消息队列,下载二级网址对应的网页数据,包括:
根据所述第一消息队列中的二级网址数量及各个下载实例的属性信息,为各个下载实例分配二级网址,所述属性信息包括下载实例的数量及下载实例的下载状态;
基于分配的二级网址,通过各个下载实例下载二级网址对应的网页数据。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述第一消息队列中的二级网址数量及各个下载实例的属性信息,为各个下载实例分配二级网址,包括:
根据所述第一消息队列中的二级网址数量及下载实例的数量,将所述第一消息队列中的二级网址平均分配给各个下载实例;或,
根据各个下载实例的下载状态,确定各个下载实例的下载优先级,按照各个下载实例的下载优先级,将所述第一消息队列中的二级网址,分配给各个下载实例。
结合第一方面,在第一方面的第三种可能的实现方式中,所述基于所述第一消息队列,下载二级网址对应的网页数据之后,还包括:
将下载得到的网页数据加入第二消息队列;
从所述第二消息队列中,获取下载得到的网页数据;
从所述下载得到的网页数据中,提取指定数据;
根据所述指定数据的数据类型,对所述指定数据进行处理。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述从所述下载得到的网页数据中,提取指定数据,包括:
根据预先设置的提取条件,从所述下载得到的网页数据中,提取指定数据。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述根据预先设置的提取条件,从所述下载得到的网页数据中,提取指定数据,包括:
根据预设关键字,从所述下载得到的网页数据中,提取包含所述预设关键字的指定数据;或;
根据预设提取段落,从所述下载得到的网页数据中,提取位于所述预设提取段落上的指定数据。
结合第一方面的第三种可能的实现方式,在第一方面的第六种可能的实现方式中,所述根据所述指定数据的数据类型,对所述指定数据进行处理,包括:
当所述指定数据的数据类型为解析数据,存储所述指定数据;
当所述指定数据的数据类型为网址数据,将所述指定数据加入到所述第一消息队列。
根据本公开实施例的第二方面,提供一种网页数据的下载装置,该装置包括:
第一获取模块,用于获取待抓取网页数据的一级网址;
第一提取模块,用于从所述一级网址的网页数据中,提取多个二级网址,所述一级网址的网页数据中包含多个二级网址及干扰数据;
第一加入模块,用于将所述多个二级网址加入第一消息队列;
下载模块,用于基于所述第一消息队列,下载二级网址对应的网页数据。
结合第二方面,在第二方面的第一种可能的实现方式中,所述下载模块,用于根据所述第一消息队列中的二级网址数量及各个下载实例的属性信息,为各个下载实例分配二级网址,所述属性信息包括下载实例的数量及下载实例的下载状态;基于分配的二级网址,通过各个下载实例下载二级网址对应的网页数据。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述下载模块,具体用于根据所述第一消息队列中的二级网址数量及下载实例的数量,将所述第一消息队列中的二级网址平均分配给各个下载实例;或,所述下载模块,具体用于根据各个下载实例的下载状态,确定各个下载实例的下载优先级,按照各个下载实例的下载优先级,将所述第一消息队列中的二级网址,分配给各个下载实例。
结合第二方面,在第二方面的第三种可能的实现方式中,所述装置,还包括:
第二加入模块,用于将下载得到的网页数据加入第二消息队列;
第二获取模块,用于从所述第二消息队列中,获取下载得到的网页数据;
第二提取模块,用于从所述下载得到的网页数据中,提取指定数据;
处理模块,用于根据所述指定数据的数据类型,对所述指定数据进行处理。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第二提取模块,用于根据预先设置的提取条件,从所述下载得到的网页数据中,提取指定数据。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述第二提取模块,具体用于根据预设关键字,从所述下载得到的网页数据中,提取包含所述预设关键字的指定数据;或;所述第二提取模块,具体用于根据预设提取段落,从所述下载得到的网页数据中,提取位于所述预设提取段落上的指定数据。
结合第二方面的第三种可能的实现方式,在第二方面的第六种可能的实现方式中,所述处理模块,用于当所述指定数据的数据类型为解析数据,存储所述指定数据;当所述指定数据的数据类型为网址数据,将所述指定数据加入到所述第一消息队列。
根据本公开实施例的第三方面,提供一种网页数据的下载装置,包括:
处理器;
用于存储处理器可执行的指令;
其中,所述处理器被配置为:
获取待抓取网页数据的一级网址;
从所述一级网址的网页数据中,提取多个二级网址,所述一级网址的网页数据中包含多个二级网址及干扰数据;
将所述多个二级网址加入第一消息队列;
基于所述第一消息队列,下载二级网址对应的网页数据。
本公开的实施例提供的技术方案可以包括以下有益效果:
在获取到待抓取网页数据的一级网址后,从一级网址的网页数据中,提取多个二级网址,并将多个二级网址加入第一消息队列,进而基于第一消息队列,下载二级网址对应的网页数据。由于借助消息队列下载网页数据,无需获知地址端口等配置信息,基于消息队列中存储的二级网址下载即可,因此,降低了资源消耗,简化了下载的复杂度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种分布式网络爬虫系统的架构图。
图2是根据一示例性实施例示出的一种网页数据的下载方法的流程图。
图3是根据一示例性实施例示出的一种网页数据的下载方法的流程图。
图4是根据一示例性实施例示出的一种网页数据的下载装置的结构示意图。
图5是根据一示例性实施例示出的一种网页数据的下载装置的结构示意图。
图6是根据一示例性实施例示出的一种网页数据的下载装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
网络爬虫作为一种自动抓取网页内容的应用程序,被广泛地应用在搜索引擎中。随着联网上的数据的增多,如何快速地从海量数据中搜索到用户所需的网页数据,成为搜索引擎面临的巨大挑战。为了应对互联网上的海量数据,网络爬虫逐渐向着分布式方向发展。
请参考图1,其示出了分布式网络爬虫系统的架构图。该分布式网络爬虫系统由调度器(scheduler)101、多个下载器(fetcher)102和分析器(processor)103组成。其中,调度器101作为分布式网络爬虫系统的中枢,负责整体调度,并为各个下载器102分配下载地址。下载器102也称为下载实例,用于根据下载地址从互联网上下载网页数据。分析器103用于对下载得到的网页数据进行分析。
基于图1所示的分布式网络爬虫系统,相关技术在从互联网上下载网页数据时,主要采用如下方式:当调度器101检测到有待下载网址时,调度器101和下载器102基于RPC协议获取彼此的地址端口等配置信息,之后,调度器101通过各个下载器102的地址端口将待下载地址发送至各个下载器102,基于接收到的下载网址,下载器102从互联网上下载网页数据。然而,在上述网页数据的下载过程中,调度器101和下载器102需要获知彼此的地址端口等配置信息,导致耦合较重。另外,在增加或删除下载器102后,相关技术需要修改调度器101和所有下载器102的地址端口等配置信息,甚至需要重新启动整个分布式网络爬虫系统,导致资源消耗较大、较为繁琐。
为了解决上述问题,在本公开的所有实施例中,调度器101、下载器102和分析器103之间将不再采用地址端口进行通信,而是采用消息队列的方式进行通信。具体地,调度器101和下载器102之间通过第一消息队列进行通信,下载器102和分析器103之间通过第二消息队列进行通信。
基于上述图1所示的分布式网络爬虫系统,图2是根据一示例性实施例示出的一种网页数据的下载方法的流程图,如图2所示,网页数据的下载方法用于服务器中,包括以下步骤。
在步骤S201中,获取待抓取网页数据的一级网址。
在步骤S202中,从一级网址的网页数据中,提取多个二级网址,一级网址的网页数据中包含多个二级网址及干扰数据。
在步骤S203中,将多个二级网址加入第一消息队列。
在步骤S204中,基于第一消息队列,下载二级网址对应的网页数据。
本公开实施例提供的方法,在获取到待抓取网页数据的一级网址后,从一级网址的网页数据中,提取多个二级网址,并将多个二级网址加入第一消息队列,进而基于第一消息队列,下载二级网址对应的网页数据。由于借助消息队列下载网页数据,无需获知地址端口等配置信息,基于消息队列中存储的二级网址下载,因此,降低了资源消耗,简化了下载的复杂度。
在本公开的一个实施例中,基于第一消息队列,下载二级网址对应的网页数据,包括:
根据第一消息队列中的二级网址数量及各个下载实例的属性信息,为各个下载实例分配二级网址,属性信息包括下载实例的数量及下载实例的下载状态;
基于分配的二级网址,通过各个下载实例下载二级网址对应的网页数据。
在本公开的一个实施例中,根据第一消息队列中的二级网址数量及各个下载实例的属性信息,为各个下载实例分配二级网址,包括:
根据第一消息队列中的二级网址数量及下载实例的数量,将第一消息队列中的二级网址平均分配给各个下载实例;或,
根据各个下载实例的下载状态,确定各个下载实例的下载优先级,按照各个下载实例的下载优先级,将第一消息队列中的二级网址,分配给各个下载实例。
在本公开的一个实施例中,基于第一消息队列,下载二级网址对应的网页数据之后,还包括:
将下载得到的网页数据加入第二消息队列;
从第二消息队列中,获取下载得到的网页数据;
从下载得到的网页数据中,提取指定数据;
根据指定数据的数据类型,对指定数据进行处理。
在本公开的一个实施例中,从下载得到的网页数据中,提取指定数据,包括:
根据预先设置的提取条件,从下载得到的网页数据中,提取指定数据。
在本公开的一个实施例中,根据预先设置的提取条件,从下载得到的网页数据中,提取指定数据,包括:
根据预设关键字,从下载得到的网页数据中,提取包含预设关键字的指定数据;或;
根据预设提取段落,从下载得到的网页数据中,提取位于预设提取段落上的指定数据。
在本公开的一个实施例中,根据指定数据的数据类型,对指定数据进行处理,包括:
当指定数据的数据类型为解析数据,存储指定数据;
当指定数据的数据类型为网址数据,将指定数据加入到第一消息队列。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
基于上述图1所示的分布式网络爬虫系统,图3是根据一示例性实施例示出的一种网页数据的下载方法的流程图,如图3所示,网页数据的下载方法用于服务器中,包括以下步骤。
在步骤S301中,服务器获取待抓取网页数据的一级网址。
随着互联网技术的发展,互联网上的数据越来越多。为了便于对这些数据进行存储,互联网上的数据以一定的方式链接到不同的网址中,而这些网址按照包含的数据量以树形结构进行排布。位于树形结构顶层的网址为一级网址,通过一级网址可获取网站的全部网页数据。一级网址中包含着干扰数据及多个二级网址。其中,干扰数据为与待抓取网页数据内容无关的数据,如网站中的广告数据、操作指导数据、帮助数据等。二级网址位于树形结构的第二层,二级网址中包含着大量的解析数据、干扰数据及多个三级网址。其中,解析数据为与网页数据内容相关的数据,如图片、文字、音视频等。三级网址位于树形结构的第三层,三级网址中包含着大量的解析数据、干扰数据及多个四级网址。四级网址中包含的数据类型与三级网址中包含的数据类型相同,此处不再赘述。对于整个网址树形结构,位于上层的网址中包含的网页数据数量要多于位于下层的网址中包含的网页数据数量,且位于最后一层的网址中不再包含下一级网址。
为了快速地在互联网上的海量网页数据中,搜索到用户所需的网页数据,通常服务器需要先获取到待抓取网页数据的一级地址,之后,根据该一级地址,从互联网上获取所需的网页数据。
由于本实施提供的方法主要应用在分布式网络爬虫系统中,而分布式网络爬虫系统中的调度器可获取到待抓取网页数据的一级网址,因此,基于分布式网络爬行系统,在获取待抓取网页数据的一级网址时,可根据调度器从互联网上获取待抓取网页数据的一级网址。
需要说明的是,由于互联网上的数据是共享的,每个网页数据可能被链接到多个不同的网站中,因此,为了避免重复获取相同的网页数据,同时降低下载网页数据的成本,本实施例提供的方法在获取待抓取网页数据的一级网址时,只需获取待抓取网页数据对应的一个一级网址即可。
在步骤S302中,服务器从一级网址的网页数据中,提取多个二级网址。
当获取到一级网址后,服务器通过下载该一级网址,可得到一级网址的网页数据。其中,一级网址的网页数据中包含着多个二级网址及干扰数据。
在本实施例中,二级网址为与待抓取的网页数据相关的网址,因此,为了能够获取到待抓取的网页数据,当得到一级网址的网页数据之后,还需要从一级网址的网页数据中,提取多个二级网址。具体提取时,可依据关键字进行提取,如,设定关键字为“文字”,根据设定的关键字,从一级网址的网页数据中提取包含关键字“文字”的多个二级网址,当然,还可以依据其他方式进行提取,本实施例对此不作具体的限定。
在步骤S303中,服务器将多个二级网址加入第一消息队列。
其中,消息为互联网上传递数据的单位。消息队列为在消息传递过程中保存消息的容器。消息队列作为数据传递的媒介,用于提供路由、确保消息的传递。在数据传递过程中,数据发送方与数据接收方之间可借助消息队列进行通信,而不直接进行通信,因此,在数据传递时,消息的发送方和消息的接收方不再需要通过地址端口,只需知道消息队列的存在即可。基于消息队列进行通信,简化了网页数据的获取过程,降低了网页数据下载过程的资源消耗。
由于二级网址并不是具体的网页数据,因此,为了获取到待抓取的网页数据,当服务器从一级网址的网页数据中,提取出多个二级网址后,需要将提取的多个二级网址加入到第一消息队列中。此外,为了便于将具有不同功能的消息队列区分开来,在本实施例中,将存储待下载的网址的消息队列,称为第一消息队列。
需要说明的是,由于第一消息队列中的二级网址的数量较多,为了从第一消息队列中获取二级网址的获取速度,本实施例提供的方法在将多个二级网址加入到第一消息队列时,可按入队时间为二级网址添加编号。例如,从一级网址对应的网页数据中依次提取的二级网址为:二级网址a、二级网址b、二级网址c和二级网址d,上述四个二级网址的入队顺序为:二级网址a、二级网址b、二级网址c、二级网址d,则可为二级网址a添加编号1,为二级网址b添加编号2,为二级网址c添加编号为3,为二级网址d添加编号为4。
在步骤S304中,服务器基于第一消息队列,下载二级网址对应的网页数据。
为了获取到更为具体的网页数据,当将获取到的二级网址加入到第一消息队列之后,服务器需要根据第一消息队列中的二级网址,下载二级网址对应的网页数据。
基于第一消息队列,服务器在下载二级网址对应的网页数据时,可采用如下方式:
首先,服务器根据第一消息队列中的二级网址数量及各个下载实例的属性信息,为各个下载实例分配二级网址,该属性信息包括下载实例的数量及下载实例的下载状态。
由于第一消息队列中的二级网址数量及下载实例的属性信息,影响着各个下载实例所分配的下载任务,而各个下载实例所分配的下载任务,影响着整个网页数据的下载进程,因此,为了合理的分配资源,提高网页数据的下载速度,本实施例提供的方法在根据第一消息队列,下载二级网址对应的网页数据时,可先根据第一消息队列中的二级网址数量及各个下载实例的属性信息,为各个下载实例分配二级网址。具体的分配方式参见(1)~(2):
(1)、服务器根据第一消息队列中的二级网址数量及下载实例的数量,将第一消息队列中的二级网址平均分配给各个下载实例
例如,第一消息队列中的二级网址为12个,下载实例的数量为4个,则可将12个二级网址平均分配给4个下载实例,每即为每个下载实例分配3个二级网址。
(2)、服务器根据各个下载实例的下载状态,确定各个下载实例的下载优先级,进而根据下载优先级为各个下载实例分配二级网址。其中,下载状态为待下载二级网址的数量及下载进度。根据下载状态的不同,服务器在确定各个下载实例的下优先级时,可分为如下(2.1)~(2.3):
(2.1)、当所有的下载实例中均未有待下载二级网址,则可为所有的下载实例设置相同的下载优先级。
(2.2)、当有部分下载实例中不存在待下载二级网址,则可为不存在待下载的二级网址的下载实例设置第一下载优先级。对于存在待下载二级网址的下载实例,可根据待下载二级网址的数量,为存在待下载二级网址的下载实例设置下载优先级。例如,可为待下载二级网址数量较少的下载实例设置第二下载优先级,为待下载二级网址数量较多的下载实例设置第三下载优先级。其中,第一下载优先级高于第二下载优先级,第二下载优先级高于第三下载优先级。
(2.3)、当有部分下载实例中不存在待下载二级网址,则可为不存在待下载的二级网址的下载实例设置第一下载优先级。对于存在待下载二级网址的下载实例,可根据待下载二级网址的下载程度,为存在待下载二级网址的下载实例设置下载优先级。例如,可为待下载二级网址的下载程度较高的下载实例设置第二下载优先级,可为待下载二级网址的下载程度较低的下载实例设置第三下载优先级。
基于设置的下载优先级,服务器按照各个下载实例的下载优先级,将第一消息队列中的二级网址,分配给各个下载实例时,可将二级网址优先分配给下载优先级较高的下载实例。
其次,基于分配的二级网址,服务器通过各个下载实例下载二级网址对应的网页数据。
基于分配的二级网址,服务器就可以通过各个下载实例,从二级网址中下载网页数据。
需要说明的是,为了提高资源的使用效率,本实施例提供的方法还将根据第一消息队列中的二级网址数量,删减下载实例。若第一消息队列中的二级网址数量较多,现有的下载实例的数量较少,此时通过现有的下载实例下载第一消息队列中的二级网址对应的网页数据的速度会很慢,此时可适当地增加分布式网络爬虫系统中下载实例的数量;当第一消息队列中的二级网址数量较少,而下载实例的数量较多,采用现有的下载实例下载第一消息队列中的二级网址对应的网页数据时,会有些下载实例出现闲置,此时,为了提高资源利用率,避免下载实例资源浪费,可适当地删减分布式网络爬虫系统中下载实例的数量。
在步骤S305中,服务器将下载得到的网页数据加入第二消息队列。
由于服务器根据二级网址下载得到的网页数据中,不仅包含着图片、文字、音视频等与待抓取网页数据相关的数据及网址数据,还包含着广告数据等干扰数据,因此,为了提高网页数据的搜索效率,在二级网址对应的网页数据之后,本实施例提供的方法还将下载得到的网页数据加入到第二消息队列,并将通过下述步骤S306至S308对该下载得到的网页数据进行处理。其中,第二消息队列用于存储下载得到的网页数据。
需要说明的是,由于服务器下载得到的网页数据的数量较大,为了方便后续步骤对第二消息队列中的网页数据进行分析,本实施例提供的方法在将下载得到的网页数据加入到第二消息队列中时,还将根据网页数据的入队时间,对网页数据进行编号,这样后续步骤中服务器就可依据网页数据的编号对网页数据进行分析。
在步骤S306中,服务器从第二消息队列中,获取下载得到的网页数据。
服务器从第二消息队列中,获取下载得到的网页数据的方式,包括但不限于:当检测到第二消息队列中存储着下载得到的网页数据时,在下载得到的网页数据的触发下,服务器将生成网页数据获取命令,进而基于该网页数据获取命令,从第二消息队列中,获取下载得到的网页数据。
在步骤S307中,服务器从下载得到的网页数据中,提取指定数据。
由于服务器从互联网上下载得到的网页数据中包含着各种类型的网页数据,而服务器所需的网页数据仅为下载得到的网页数据中的一部分,在本实施例中,该部分数据为指定数据,因此,服务器在从第二消息队列中获取到下载得到的网页数据之后,还需要从下载得到的网页数据中,提取出指定数据。
为了有针对性地从下载得到的网页数据中,获取到指定数据,服务器在从下载得到的网页数据中,提取指定数据之前,需要预先设置提取条件。该预先设置的提取条件可以为预设关键字、预设提取段落等,本实施例预先设置的提取条件作具体的限定。
针对预先设置的提取条件的不同内容,服务器在从下载得到的网页数据中,提取指定数据时,可分为如下几种情况。
在本公开的一个实施例中,当预先设置的提取条件为预设关键字时,服务器可根据预设关键字,从下载得到的网页数据中,提取包含预设关键字的指定数据。例如,预设关键字为“文本”,则根据预设关键字,服务器可从下载得到的网页数据中,提取包含“文本”的数据,并将提取到的数据作为指定数据。
需要说明的是,为了保证提取到的指定数据的全面性,在根据预设关键字,从下载得到的网页数据中提取指定数据时,可将包含预设关键字的预设范围内的数据均作为指定数据进行提取。其中,预设范围可以为预设关键字所在行的前后3行、前后5行、前后7行等,本实施例不对预设范围作具体的限定。
在本公开的另一个实施例中,当预设关键字的提取条件为预设提取段落时,服务器可根据预设提取段落,从下载得到的网页数据中,提取位于预设提取段落上的指定数据。例如,预设提取段落为下载得到的网页数据的第5段,则根据预设提取段落,服务器可从下载得到的网页数据中,提取第5段上的数据,并将提取到的数据作为指定数据。
在步骤S308中,服务器根据指定数据的数据类型,对指定数据进行处理。
为了有针对性地对网页数据进行处理,在本实施例中,服务器在获取到指定数据之后,还将确定指定数据的数据类型,进而根据指定数据的数据类型,对指定数据进行处理。其中,指定数据的数据类型可以为解析数据、网址数据等。关于确定指定数据的数据类型的方式,包括但不限于:判断指定数据中是否包含指定代码,若定数据中包含指定代码,则判断指定数据的数据类型为网址数据;若定数据中不包含指定代码,则判断指定数据的数据类型为解析数据。
针对指定数据的不同数据类型,服务器在对指定数据进行处理时,可采用如下(1)~(2)。
(1)、当指定数据的数据类型为解析数据,说明该数据为与待抓取的网页数据内容相关的数据,此时服务器需要将指定数据进行存储。关于存储指定数据的方式,包括但不限于:将指定数据存储在对应的存储单元。
(2)、当指定数据的数据类型为网址数据,说明该数据可能为下一步需要下载的网址,此时服务器需要将指定数据加入到第一消息队列,并在下次下载网页数据时,将该指定数据分配给下载实例进行下载。
本公开实施例提供的方法,在获取到待抓取网页数据的一级网址后,从一级网址的网页数据中,提取多个二级网址,并将多个二级网址加入第一消息队列,进而基于第一消息队列,下载二级网址对应的网页数据。由于借助消息队列下载网页数据,无需获知地址端口等配置信息,基于消息队列中存储的二级网址下载,因此,降低了资源消耗,简化了下载的复杂度。另外,通过对下载得到的网页数据的分析处理,可节省数据处理资源。
图4是根据一示例性实施例示出的一种网页数据的下载装置的结构示意图。参照图4,该装置包括:第一获取模块401、第一提取模块402、第一加入模块403和下载模块404。
该第一获取模块401被配置为获取待抓取网页数据的一级网址;
该第一提取模块402被配置为从一级网址的网页数据中,提取多个二级网址,一级网址的网页数据中包含多个二级网址及干扰数据;
该第一加入模块403被配置为将多个二级网址加入第一消息队列;
该下载模块404被配置为基于第一消息队列,下载二级网址对应的网页数据。
在本公开的一个实施例中,该下载模块404被配置为根据第一消息队列中的二级网址数量及各个下载实例的属性信息,为各个下载实例分配二级网址,属性信息包括下载实例的数量及下载实例的下载状态;基于分配的二级网址,通过各个下载实例下载二级网址对应的网页数据。
在本公开的一个实施例中,该下载模块404被配置为根据第一消息队列中的二级网址数量及下载实例的数量,将第一消息队列中的二级网址平均分配给各个下载实例;或,该下载模块404被配置为根据各个下载实例的下载状态,确定各个下载实例的下载优先级,按照各个下载实例的下载优先级,将第一消息队列中的二级网址,分配给各个下载实例。
参照图5,该装置,还包括:第二加入模块405、第二获取模块406、第二提取模块407和处理模块408。
该第二加入模块405被配置为将下载得到的网页数据加入第二消息队列;
该第二获取模块406被配置为从第二消息队列中,获取下载得到的网页数据;
该第二提取模块407被配置为从下载得到的网页数据中,提取指定数据;
该处理模块408被配置为根据指定数据的数据类型,对指定数据进行处理。
在本公开的一个实施例中,该第二提取模块407被配置为根据预先设置的提取条件,从下载得到的网页数据中,提取指定数据。
在本公开的一个实施例中,该第二提取模块407被配置为根据预设关键字,从下载得到的网页数据中,提取包含预设关键字的指定数据;或;第二提取模块,具体用于根据预设提取段落,从下载得到的网页数据中,提取位于预设提取段落上的指定数据。
在本公开的一个实施例中,该处理模块408被配置为当指定数据的数据类型为解析数据,存储指定数据;当指定数据的数据类型为网址数据,将指定数据加入到第一消息队列。
本公开实施例提供的装置,在获取到待抓取网页数据的一级网址后,从一级网址的网页数据中,提取多个二级网址,并将多个二级网址加入第一消息队列,进而基于第一消息队列,下载二级网址对应的网页数据。由于借助消息队列下载网页数据,无需获知地址端口等配置信息,基于消息队列中存储的二级网址下载,因此,降低了资源消耗,简化了下载的复杂度。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种用于网页数据的下载装置600的框图。例如,装置600可以被提供为一服务器。参照图6,装置600包括处理组件622,其进一步包括一个或多个处理器,以及由存储器632所代表的存储器资源,用于存储可由处理组件622的执行的指令,例如应用程序。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述网页数据的下载方法。
获取待抓取网页数据的一级网址;
从一级网址的网页数据中,提取多个二级网址,一级网址的网页数据中包含多个二级网址及干扰数据;
将多个二级网址加入第一消息队列;
基于第一消息队列,下载二级网址对应的网页数据。
在本公开的一个实施中,基于第一消息队列,下载二级网址对应的网页数据,包括:
根据第一消息队列中的二级网址数量及各个下载实例的属性信息,为各个下载实例分配二级网址,属性信息包括下载实例的数量及下载实例的下载状态;
基于分配的二级网址,通过各个下载实例下载二级网址对应的网页数据。
在本公开的一个实施例中,根据第一消息队列中的二级网址数量及各个下载实例的属性信息,为各个下载实例分配二级网址,包括:
根据第一消息队列中的二级网址数量及下载实例的数量,将第一消息队列中的二级网址平均分配给各个下载实例;或,
根据各个下载实例的下载状态,确定各个下载实例的下载优先级,按照各个下载实例的下载优先级,将第一消息队列中的二级网址,分配给各个下载实例。
在本公开的一个实施例中,基于第一消息队列,下载二级网址对应的网页数据之后,还包括:
将下载得到的网页数据加入第二消息队列;
从第二消息队列中,获取下载得到的网页数据;
从下载得到的网页数据中,提取指定数据;
根据指定数据的数据类型,对指定数据进行处理。
在本公开的一个实施例中,从下载得到的网页数据中,提取指定数据,包括:
根据预先设置的提取条件,从下载得到的网页数据中,提取指定数据。
在本公开的一个实施例中,根据预先设置的提取条件,从下载得到的网页数据中,提取指定数据,包括:
根据预设关键字,从下载得到的网页数据中,提取包含预设关键字的指定数据;或;
根据预设提取段落,从下载得到的网页数据中,提取位于预设提取段落上的指定数据。
在本公开的一个实施例中,根据指定数据的数据类型,对指定数据进行处理,包括:
当指定数据的数据类型为解析数据,存储指定数据;
当指定数据的数据类型为网址数据,将指定数据加入到第一消息队列。
装置600还可以包括一个电源组件626被配置为执行装置600的电源管理,一个有线或无线网络接口650被配置为将装置600连接到网络,和一个输入输出(I/O)接口658。装置600可以操作基于存储在存储器632的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本公开实施例提供的装置,在获取到待抓取网页数据的一级网址后,从一级网址的网页数据中,提取多个二级网址,并将多个二级网址加入第一消息队列,进而基于第一消息队列,下载二级网址对应的网页数据。由于借助消息队列下载网页数据,无需获知地址端口等配置信息,基于消息队列中存储的二级网址下载,因此,下载网页数据时更为便捷、资源消耗更小。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (15)
1.一种网页数据的下载方法,其特征在于,所述方法包括:
获取待抓取网页数据的一级网址;
从所述一级网址的网页数据中,提取多个二级网址,所述一级网址的网页数据中包含多个二级网址及干扰数据;
将所述多个二级网址加入第一消息队列;
基于所述第一消息队列,下载二级网址对应的网页数据。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一消息队列,下载二级网址对应的网页数据,包括:
根据所述第一消息队列中的二级网址数量及各个下载实例的属性信息,为各个下载实例分配二级网址,所述属性信息包括下载实例的数量及下载实例的下载状态;
基于分配的二级网址,通过各个下载实例下载二级网址对应的网页数据。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一消息队列中的二级网址数量及各个下载实例的属性信息,为各个下载实例分配二级网址,包括:
根据所述第一消息队列中的二级网址数量及下载实例的数量,将所述第一消息队列中的二级网址平均分配给各个下载实例;或,
根据各个下载实例的下载状态,确定各个下载实例的下载优先级,按照各个下载实例的下载优先级,将所述第一消息队列中的二级网址,分配给各个下载实例。
4.根据权利要求1所述的方法,其特征在于,所述基于所述第一消息队列,下载二级网址对应的网页数据之后,还包括:
将下载得到的网页数据加入第二消息队列;
从所述第二消息队列中,获取下载得到的网页数据;
从所述下载得到的网页数据中,提取指定数据;
根据所述指定数据的数据类型,对所述指定数据进行处理。
5.根据权利要求4所述的方法,其特征在于,所述从所述下载得到的网页数据中,提取指定数据,包括:
根据预先设置的提取条件,从所述下载得到的网页数据中,提取指定数据。
6.根据权利要求5所述的方法,其特征在于,所述根据预先设置的提取条件,从所述下载得到的网页数据中,提取指定数据,包括:
根据预设关键字,从所述下载得到的网页数据中,提取包含所述预设关键字的指定数据;或;
根据预设提取段落,从所述下载得到的网页数据中,提取位于所述预设提取段落上的指定数据。
7.根据权利要求4所述的方法,其特征在于,所述根据所述指定数据的数据类型,对所述指定数据进行处理,包括:
当所述指定数据的数据类型为解析数据,存储所述指定数据;
当所述指定数据的数据类型为网址数据,将所述指定数据加入到所述第一消息队列。
8.一种网页数据的下载装置,其特征在于,所述装置包括:
第一获取模块,用于获取待抓取网页数据的一级网址;
第一提取模块,用于从所述一级网址的网页数据中,提取多个二级网址,所述一级网址的网页数据中包含多个二级网址及干扰数据;
第一加入模块,用于将所述多个二级网址加入第一消息队列;
下载模块,用于基于所述第一消息队列,下载二级网址对应的网页数据。
9.根据权利要求8所述的装置,其特征在于,所述下载模块,用于根据所述第一消息队列中的二级网址数量及各个下载实例的属性信息,为各个下载实例分配二级网址,所述属性信息包括下载实例的数量及下载实例的下载状态;基于分配的二级网址,通过各个下载实例下载二级网址对应的网页数据。
10.根据权利要求9所述的装置,其特征在于,所述下载模块,具体用于根据所述第一消息队列中的二级网址数量及下载实例的数量,将所述第一消息队列中的二级网址平均分配给各个下载实例;或,所述下载模块,具体用于根据各个下载实例的下载状态,确定各个下载实例的下载优先级,按照各个下载实例的下载优先级,将所述第一消息队列中的二级网址,分配给各个下载实例。
11.根据权利要求8所述的装置,其特征在于,所述装置,还包括:
第二加入模块,用于将下载得到的网页数据加入第二消息队列;
第二获取模块,用于从所述第二消息队列中,获取下载得到的网页数据;
第二提取模块,用于从所述下载得到的网页数据中,提取指定数据;
处理模块,用于根据所述指定数据的数据类型,对所述指定数据进行处理。
12.根据权利要求11所述的装置,其特征在于,所述第二提取模块,用于根据预先设置的提取条件,从所述下载得到的网页数据中,提取指定数据。
13.根据权利要求12所述的装置,其特征在于,所述第二提取模块,具体用于根据预设关键字,从所述下载得到的网页数据中,提取包含所述预设关键字的指定数据;或;所述第二提取模块,具体用于根据预设提取段落,从所述下载得到的网页数据中,提取位于所述预设提取段落上的指定数据。
14.根据权利要求11所述的装置,其特征在于,所述处理模块,用于当所述指定数据的数据类型为解析数据,存储所述指定数据;当所述指定数据的数据类型为网址数据,将所述指定数据加入到所述第一消息队列。
15.一种网页数据的下载装置,其特征在于,包括:
处理器;
用于存储处理器可执行的指令;
其中,所述处理器被配置为:
获取待抓取网页数据的一级网址;
从所述一级网址的网页数据中,提取多个二级网址,所述一级网址的网页数据中包含多个二级网址及干扰数据;
将所述多个二级网址加入第一消息队列;
基于所述第一消息队列,下载二级网址对应的网页数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410827793.4A CN104572901B (zh) | 2014-12-25 | 2014-12-25 | 网页数据的下载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410827793.4A CN104572901B (zh) | 2014-12-25 | 2014-12-25 | 网页数据的下载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572901A true CN104572901A (zh) | 2015-04-29 |
CN104572901B CN104572901B (zh) | 2018-12-18 |
Family
ID=53088963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410827793.4A Active CN104572901B (zh) | 2014-12-25 | 2014-12-25 | 网页数据的下载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572901B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930482A (zh) * | 2016-04-29 | 2016-09-07 | 北京小米移动软件有限公司 | 对网络数据进行关键词匹配的方法及装置 |
CN106681902A (zh) * | 2015-11-10 | 2017-05-17 | 北京国双科技有限公司 | 网页数据的测试方法及装置 |
CN109902182A (zh) * | 2019-01-30 | 2019-06-18 | 北京百度网讯科技有限公司 | 知识数据处理方法、装置、设备及存储介质 |
CN109947959A (zh) * | 2019-02-11 | 2019-06-28 | 平安科技(深圳)有限公司 | 图片采集方法、装置及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094135A (zh) * | 2006-06-23 | 2007-12-26 | 腾讯科技(深圳)有限公司 | 一种互联网内容信息的提取方法和提取系统 |
US20110307467A1 (en) * | 2010-06-10 | 2011-12-15 | Stephen Severance | Distributed web crawler architecture |
CN102314463A (zh) * | 2010-07-07 | 2012-01-11 | 北京瑞信在线系统技术有限公司 | 分布式爬虫系统及其提取网页数据的方法 |
CN103279507A (zh) * | 2013-05-16 | 2013-09-04 | 北京尚友通达信息技术有限公司 | 网页爬虫操作方法和系统 |
CN103310012A (zh) * | 2013-07-02 | 2013-09-18 | 北京航空航天大学 | 一种分布式网络爬虫系统 |
CN103873597A (zh) * | 2014-04-15 | 2014-06-18 | 厦门市美亚柏科信息股份有限公司 | 分布式网页下载方法和系统 |
-
2014
- 2014-12-25 CN CN201410827793.4A patent/CN104572901B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094135A (zh) * | 2006-06-23 | 2007-12-26 | 腾讯科技(深圳)有限公司 | 一种互联网内容信息的提取方法和提取系统 |
US20110307467A1 (en) * | 2010-06-10 | 2011-12-15 | Stephen Severance | Distributed web crawler architecture |
CN102314463A (zh) * | 2010-07-07 | 2012-01-11 | 北京瑞信在线系统技术有限公司 | 分布式爬虫系统及其提取网页数据的方法 |
CN103279507A (zh) * | 2013-05-16 | 2013-09-04 | 北京尚友通达信息技术有限公司 | 网页爬虫操作方法和系统 |
CN103310012A (zh) * | 2013-07-02 | 2013-09-18 | 北京航空航天大学 | 一种分布式网络爬虫系统 |
CN103873597A (zh) * | 2014-04-15 | 2014-06-18 | 厦门市美亚柏科信息股份有限公司 | 分布式网页下载方法和系统 |
Non-Patent Citations (1)
Title |
---|
付征叶 等: ""遥感影像并行处理中基于优先级的任务分配策略"", 《计算机工程》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681902A (zh) * | 2015-11-10 | 2017-05-17 | 北京国双科技有限公司 | 网页数据的测试方法及装置 |
CN106681902B (zh) * | 2015-11-10 | 2019-10-25 | 北京国双科技有限公司 | 网页数据的测试方法及装置 |
CN105930482A (zh) * | 2016-04-29 | 2016-09-07 | 北京小米移动软件有限公司 | 对网络数据进行关键词匹配的方法及装置 |
CN109902182A (zh) * | 2019-01-30 | 2019-06-18 | 北京百度网讯科技有限公司 | 知识数据处理方法、装置、设备及存储介质 |
CN109947959A (zh) * | 2019-02-11 | 2019-06-28 | 平安科技(深圳)有限公司 | 图片采集方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104572901B (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11755371B1 (en) | Data intake and query system with distributed data acquisition, indexing and search | |
CN108055264B (zh) | 推流服务器的调度装置、方法及计算机可读存储介质 | |
US9973566B2 (en) | Dynamic creation and execution of containerized applications in cloud computing | |
WO2020029388A1 (zh) | 文件传输方法、系统、计算机设备和存储介质 | |
CN104978258B (zh) | 软件自动化测试方法及系统 | |
CN105117289A (zh) | 基于云测试平台的任务分配方法、装置及系统 | |
CN104572901A (zh) | 网页数据的下载方法及装置 | |
CN103780700A (zh) | 一种实现多源异构系统之间兼容与共享的应用系统和方法 | |
US20170134495A1 (en) | Method and apparatus for sharing collaboratively edited document | |
CN108255585B (zh) | Sdk异常控制及应用程序运行方法、装置及其设备 | |
CN105279017A (zh) | 基于云测试平台的任务分配方法、装置及系统 | |
CN101667147A (zh) | 一种多任务的可控自动快照方法 | |
CN105718307B (zh) | 进程管理方法及进程管理装置 | |
CN105786612A (zh) | 一种资源管理方法及装置 | |
CN105260190A (zh) | 基于安卓系统分发技术的安卓应用的运行方法和系统 | |
CN102882960B (zh) | 一种资源文件的发送方法及装置 | |
CN104462158A (zh) | 数据抓取方法和数据抓取系统 | |
CN110460668B (zh) | 一种文件上传方法、装置、计算机设备和存储介质 | |
CN110750453B (zh) | 基于html5的智能移动端测试方法、系统、服务器及存储介质 | |
CN105009115B (zh) | 获取网络资源的方法和装置 | |
AU2016101498B4 (en) | Data Interchange System | |
CN104796477A (zh) | 一种文件上传方法、装置和系统 | |
CN110851211A (zh) | 用于显示应用信息的方法、装置、电子设备和介质 | |
CN103685295A (zh) | 一种下载多媒体文件的方法、终端及系统 | |
CN117724852A (zh) | 一种云电脑计算资源分配方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |