执行爬取任务的方法和装置制造方法

文档序号:6638937阅读:223来源:国知局
执行爬取任务的方法和装置制造方法
【专利摘要】本发明公开了一种执行爬取任务的方法和装置。其中,该方法包括:第一终端将接收到的爬取请求发送至云服务器的云端分布式队列;第二终端从云端分布式队列中读取爬取请求,其中,第二终端为云终端;第二终端按照爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库;第一终端从数据库读取爬取结果数据。采用本发明,解决了现有技术中使用单机执行爬取任务效率低且IP地址容易被屏蔽的问题,达到了在避免被服务器屏蔽的情况下提高执行爬取请求效率的效果。
【专利说明】执行爬取任务的方法和装置

【技术领域】
[0001]本发明涉及互联网领域,具体而言,涉及一种执行爬取任务的方法和装置。

【背景技术】
[0002]目前,爬虫程序是构建互联网搜索引擎的基本组件,具备分析并爬取网站上网页资源或其他资源的功能。可以将爬虫程序分为链接分析模块与爬取模块,其中,爬取模块负责根据爬取请求获取爬取结果。常见的爬取模块的实现,是将爬取请求在本机执行,即由执行爬虫程序的计算机直接向待爬取的网址或者服务器发出网络请求,并接收服务器对于该请求的响应内容。
[0003]现有技术主要依靠本地计算机来执行爬取请求,所以,页面爬取完全依赖于本机端口,而本机端口有限,会影响爬取效率,且单机的带宽有限,无法同时发起较多的网络请求,因此无法通过大规模并行爬取提高爬取效率。由上可知,使用单机执行爬取请求时,爬取请求的执行速度和质量将受到本机端口和网络资源的限制。另外,当爬取请求集中在一个网站时,频繁请求将导致本机过度冲击远端Web服务器,从而可能被该服务器端所屏蔽,且一旦屏蔽发生,将极大影响爬取质量和效果。
[0004]针对现有技术中使用单机执行爬取任务效率低且IP地址容易被屏蔽的问题,目前尚未提出有效的解决方案。


【发明内容】

[0005]本发明的主要目的在于提供一种执行爬取任务的方法和装置,以解决现有技术中使用单机执行爬取任务效率低且IP地址容易被屏蔽的问题。
[0006]为了实现上述目的,根据本发明实施例的一个方面,提供了一种执行爬取任务的方法。根据本发明的执行爬取任务的方法包括:第一终端将接收到的爬取请求发送至云服务器的云端分布式队列;第二终端从云端分布式队列中读取爬取请求,其中,第二终端为云终端;第二终端按照爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库;第一终端从数据库读取爬取结果数据。
[0007]进一步地,第一终端将接收到的爬取请求发送至云服务器的云端分布式队列包括:为爬取请求设置第一请求标签;将第一请求标签和爬取请求发送至云端分布式队列;以及保存爬取请求和第一请求标签至第一终端的数据表。
[0008]进一步地,在第二终端按照爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库的同时或之后,方法还包括:将爬取请求的第一请求标签和爬取结果数据的存储地址保存至云服务器的爬取完成队列。
[0009]进一步地,第一终端从数据库读取爬取结果数据包括:从爬取完成队列中获取第一请求标签及其对应的存储地址;从存储地址对应数据库的存储位置中读取爬取结果数据。
[0010]进一步地,在第一终端从数据库读取爬取结果数据之后,方法还包括:从数据表中读取第一请求标签的爬取请求;输出第一请求标签的爬取请求和爬取结果数据。
[0011]为了实现上述目的,根据本发明实施例的另一方面,提供了一种执行爬取任务的装置。根据本发明的执行爬取任务的装置包括:发送模块,用于第一终端将接收到的爬取请求发送至云服务器的云端分布式队列;第一读取模块,用于第二终端从云端分布式队列中读取爬取请求,其中,第二终端为云终端;爬取模块,用于第二终端按照爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库;第二读取模块,用于第一终端从数据库读取爬取结果数据。
[0012]进一步地,发送模块包括:设置模块,用于为爬取请求设置第一请求标签;发送子模块,用于将第一请求标签和爬取请求发送至云端分布式队列;以及第一保存模块,用于保存爬取请求和第一请求标签至第一终端的数据表。
[0013]进一步地,装置还包括:第二保存模块,用于在第二终端按照爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库的同时或之后,将爬取请求的第一请求标签和爬取结果数据的存储地址保存至云服务器的爬取完成队列。
[0014]进一步地,第二读取模块包括:获取模块,用于从爬取完成队列中获取第一请求标签及其对应的存储地址;第二读取子模块,用于从存储地址对应数据库的存储位置中读取爬取结果数据。
[0015]进一步地,装置还包括:第三读取模块,用于在第一终端从数据库读取爬取结果数据之后,从数据表中读取第一请求标签的爬取请求;输出模块,用于输出第一请求标签的爬取请求和爬取结果数据。
[0016]采用本发明,将第一终端(可以是本地计算机)作为一个代理,负责上传爬取请求而不具体地执行爬取请求,使用云端的第二终端去执行具体地爬取任务,通过多个云终端并行执行爬取请求,从而不再受本地资源和能力的局限,从而达到提升整体爬取效率的效果;另外,云端资源具有分布式特性,能够有效避免服务器对执行大量爬取请求时的屏蔽。采用本发明,解决了现有技术中使用单机执行爬取任务效率低且IP地址容易被屏蔽的问题,达到了在避免被服务器屏蔽的情况下提高执行爬取请求效率的效果。

【专利附图】

【附图说明】
[0017]构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0018]图1是根据本发明实施例的执行爬取任务的方法的流程图;以及
[0019]图2是根据本发明实施例的执行爬取任务的装置的示意图。

【具体实施方式】
[0020]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0021 ] 为了使本【技术领域】的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0022]需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0023]本发明实施例提供了一种执行爬取任务的方法。图1是根据本发明实施例的执行爬取任务的方法的流程图。如图1所示,该方法可以包括步骤如下:
[0024]步骤S102,第一终端将接收到的爬取请求发送至云服务器的云端分布式队列。
[0025]步骤S104,第二终端从云端分布式队列中读取爬取请求,其中,第二终端为云终端。
[0026]步骤S106,第二终端按照爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库。
[0027]步骤S108,第一终端从数据库读取爬取结果数据。
[0028]采用本发明,在第一终端接收到爬取请求时,为每一个爬取请求设置第一请求标签并将爬取请求以及对应的第一请求标签发送至云服务器的云端分布式队列中,第二终端从云端分布式队列中读取爬取请求及对应的第一请求标签,并根据爬取请求对对应的服务器进行爬取得到爬取结果数据,并将爬取结果数据保存至数据库,第一终端从数据库中获取爬取结果数据。采用本发明,将第一终端(可以是本地计算机)作为一个代理,负责上传爬取请求而不具体地执行爬取请求,使用云端的第二终端去执行具体地爬取任务,通过多个云终端并行执行爬取请求,从而不再受本地资源和能力的局限,从而达到提升整体爬取效率的效果;另外,云端资源具有分布式特性,能够有效避免服务器对执行大量爬取请求时的屏蔽。采用本发明,解决了现有技术中使用单机执行爬取任务效率低且IP地址容易被屏蔽的问题,达到了在避免被服务器屏蔽的情况下提高执行爬取请求效率的效果。
[0029]其中,上述实施例中的数据库可以是BLOB数据库,该数据库为使用二进制保存数据的数据库。
[0030]在本发明的上述实施例中,第一终端将接收到的爬取请求发送至云服务器的云端分布式队列可以包括:为爬取请求设置第一请求标签;将第一请求标签和爬取请求发送至云端分布式队列;以及保存爬取请求和第一请求标签至第一终端的数据表。
[0031]具体地,当第一终端接收到爬取请求之后,为该请求生成一个第一请求标签,并将上述爬取请求和对应的第一请求标签放入第一终端的数据表,然后将上述爬取请求(即请求实体)和对应的第一请求标签发送至云端分布式队列以便第二终端能够及时获取爬取请求。
[0032]在第一终端维护一个键为第一请求标签,值为爬取请求的哈希表(即上述实施例中的数据表),将完成上传的爬取请求及其第一请求标签放置入该哈希表中。
[0033]通过本发明的上述实施例,第一终端可以根据爬取请求的第一请求标签及时获取每一个爬取请求的执行状态,若该爬取请求已经执行完毕,第一终端从数据库中获取爬取结果数据,通过第二终端执行爬取任务,达到了提高执行爬取请求效率的效果。
[0034]在本发明的上述实施例中,在第二终端按照爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库之后,方法还可以包括:将爬取请求的第一请求标签和爬取结果数据的存储地址保存至云服务器的爬取完成队列。
[0035]在本发明的上述实施例中,第二终端爬取完成后,将爬取结果数据存入云端分布式BLOB数据库,并将请求标签和爬取结果的地址发送至爬取完成队列。第一终端从爬取完成队列中读取到完成信息后,再根据完成信息中的地址去云端BLOB数据库读取具体的爬取结果。
[0036]其中,上述实施例中的爬取结果数据的存储地址为云端存储URL (即,统一资源定位符)地址;爬取完成队列同样是位于云端的分布式队列。
[0037]具体地,第二终端根据从云端分布式队列中读取的爬取请求从对应的服务器读取响应数据,然后将其存储在BLOB数据库中,并将该爬取请求的响应数据的存储地址以及该请求对应的第一请求标签存储至云服务器的爬取完成队列。其中,爬取请求的响应数据即爬取结果数据。
[0038]通过本发明的上述实施例,将爬行结果数据和其对应的存储地址分别存储在BLOB数据库和爬取完成队列,能够提高第一终端查询和读取爬行结果数据的效率。其中,BLOB形式的数据库为云端的数据库。
[0039]根据本发明的上述实施例,第一终端从数据库读取爬取结果数据可以包括:从爬取完成队列中获取第一请求标签及其对应的存储地址;从存储地址对应数据库的存储位置中读取爬取结果数据。
[0040]具体地,第一终端从爬取完成队列中获取第一请求标签以及该第一请求标签对应的爬取请求的爬取结果数据的地址,然后根据该地址从数据库获取爬取结果数据。通过上述实施例,第一终端不再需要具体地执行爬取请求,减少了本地操作,节省了大量的资源,采用本发明的方法可以将本地资源用于读取爬取结果数据,提高了执行爬取请求的效率。
[0041]根据本发明的上述实施例,在第一终端从数据库读取爬取结果数据之后,方法还可以包括:从数据表中读取第一请求标签的爬取请求;输出第一请求标签的爬取请求和爬取结果数据。
[0042]具体地,第一终端的页面爬取模块从爬取完成队列中获取完成的爬取请求的请求标签,并从相应的云端存储URL读取爬取结果数据;可选地,页面爬取模块可以根据请求标签从哈希表中查找爬取请求的信息,将从云端BLOB数据库下载的爬取结果数据一并输出。
[0043]在第一终端从数据库读取完爬取结果数据并存入数据表中后,需要将爬取结果数据返回至爬取请求的发起者,具体是根据第一请求标签从数据表读取已经执行完毕的爬取请求和对应的爬取结果数据,将上述请求和数据下发至该请求的发起者。
[0044]需要进一步说明的是,在本发明的上述实施例中可以包括多个第一终端,每个第一终端上均可以维护一个请求池(即上述实施例中的哈希表),请求池中记录了爬取请求和第一请求标签。当从爬取完成队列读取到完成信息时,可以利用请求标签和第一终端的请求池做一个匹配,找到对应的原始的爬取请求。如果在第一终端的请求池里找不到同样的请求标签的爬取请求,则说明这个爬取完成的请求是其他第一终端所提交的,该第一终端可将此完成的请求信息(即上述实施例中的爬取结果数据)还回爬取完成队列中,以便其他的第一终端获取。
[0045]在本发明的上述实施例中,采用分布式队列进行本地代理与云端爬虫进行交互,如上传爬取请求、通知爬取完成;并且云端第二终端的爬虫将爬取结果保存在云端BLOB数据库,本地爬取模块接收到爬取完成的通知后,按需进行下载。在上述实施例中,使用请求标签在分布式架构下标记爬取条目,以方便在本地与云端将请求与爬取结果相对应。
[0046]在该实施例中,第一终端的爬取模块实质上成为了一个代理,其负载分发爬取请求和获取爬取结果,不参与具体地爬取工作,具体地爬取工作由云端爬虫集群进行。因此,本地的网络资源瓶颈不复存在,在可水平扩展的云端爬虫集群配合下,可以大幅度提升爬取速度和效率,避免了单台机器对服务器反复高频度请求而遭屏蔽的风险。
[0047]需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0048]本发明实施例还提供了一种执行爬取任务的装置。图2是根据本发明实施例的执行爬取任务的装置的示意图。如图2所示,该装置可以包括如下模块:发送模块10、第一读取模块20、爬取模块30以及第二读取模块40。
[0049]其中,发送模块10用于第一终端将接收到的爬取请求发送至云服务器的云端分布式队列;第一读取模块20用于第二终端从云端分布式队列中读取爬取请求,其中,第二终端为云终端;爬取模块30用于第二终端按照爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库;第二读取模块40用于第一终端从数据库读取爬取结果数据。
[0050]采用本发明,当第一终端接收到爬取请求时,发送模块为每一个爬取请求设置第一请求标签并将爬取请求以及对应的第一请求标签发送至云服务器的云端分布式阵列中,并将爬取结果数据保存至数据库,第一读取模块从数据库中获取爬取结果数据。采用本发明,将第一终端(可以是本地计算机)作为一个代理,负责上传爬取请求而不具体地执行爬取请求,使用云端的第二终端去执行具体地爬取任务,通过多个云终端并行执行爬取请求,从而不再受本地资源和能力的局限,从而达到提升整体爬取效率的效果;另外,云端资源具有分布式特性,能够有效避免服务器对执行大量爬取请求时的屏蔽。采用本发明,解决了现有技术中使用单机执行爬取任务效率低且IP地址容易被屏蔽的问题,达到了在避免被服务器屏蔽的情况下提高执行爬取请求效率的效果。
[0051 ] 其中,上述实施例中的数据库可以是BLOB数据库,该数据库为使用二进制保存数据的数据库。
[0052]在本发明的上述实施例中,发送模块可以包括:设置模块,用于为爬取请求设置第一请求标签;发送子模块,用于将第一请求标签和爬取请求发送至云端分布式队列;第一保存模块,用于保存爬取请求和第一请求标签至第一终端的数据表。
[0053]具体地,当第一终端接收到爬取请求之后,为该请求生成一个第一请求标签,并将上述爬取请求和对应的第一请求标签放入第一终端的数据表,然后将上述爬取请求(即请求实体)和对应的第一请求标签发送至云端分布式队列以便第二终端能够及时获取爬取请求。
[0054]在第一终端维护一个键为第一请求标签,值为爬取请求的哈希表(即上述实施例中的数据表),将完成上传的爬取请求及其第一请求标签放置入该哈希表中。
[0055]采用本发明的上述实施例,通过设置模块为每一个爬取请求添加第一请求标签,使得第一终端实质上成为了一个代理,从而让第一终端将有限的资源用于负责上传爬取请求和获取爬取结果,并不参与具体爬取工作,达到了提升爬取速度和效率的效果,同时避免了因第一终端对服务器反复高频度的爬取请求而遭屏蔽的风险。
[0056]在本发明的上述实施例中,装置还可以包括:第二保存模块,用于在第二终端按照爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库的同时或之后,将爬取请求的第一请求标签和爬取结果数据的存储地址保存至云服务器的爬取完成队列。
[0057]在本发明的上述实施例中,第二终端爬取完成后,将爬取结果数据存入云端分布式BLOB数据库,并将请求标签和爬取结果的地址发送至爬取完成队列。第一终端从爬取完成队列中读取到完成信息后,再根据完成信息中的地址去云端BLOB数据库读取具体的爬取结果。
[0058]其中,上述实施例中的爬取结果数据的存储地址为云端存储URL (即,统一资源定位符)地址;爬取完成队列同样是位于云端的分布式队列。
[0059]根据本发明的上述实施例,第二读取模块可以包括:获取模块,用于从爬取完成队列中获取第一请求标签及其对应的存储地址;第二读取子模块,用于从存储地址对应数据库的存储位置中读取爬取结果数据。
[0060]具体地,获取模块从爬取完成队列中获取第一请求标签以及该第一请求标签对应的爬取请求的爬取结果数据的地址,然后第二读取子模块根据该地址从数据库获取爬取结果数据。
[0061]通过上述实施例,第一终端不再需要具体地执行爬取请求,减少了本地操作,节省了大量的资源,采用本发明的方法就可以将本地资源(即第一终端)用于读取爬取结果数据,从而提高了执行爬取请求的效率。
[0062]在上述实施例中,装置还包括:第三读取模块,用于在第一终端从数据库读取爬取结果数据之后,从数据表中读取第一请求标签的爬取请求;输出模块,用于输出第一请求标签的爬取请求和爬取结果数据。
[0063]在第一终端从数据库读取完爬取结果数据并存入数据表中后,需要将爬取结果数据发送至爬取请求的发起者,具体是第三读取模块根据第一请求标签从数据表读取已经执行完毕的爬取请求和对应的爬取结果数据,然后输出模块将上述爬取请求和爬取结果数据下发至该请求的发起者。
[0064]需要进一步说明的是,在本发明的上述实施例中可以包括多个第一终端,每个第一终端上均可以维护一个请求池(即上述实施例中的哈希表),请求池中记录了爬取请求和第一请求标签。当从爬取完成队列读取到完成信息时,可以利用请求标签和第一终端的请求池做一个匹配,找到对应的原始的爬取请求。如果在第一终端的请求池里找不到同样的请求标签的爬取请求,则说明这个爬取完成的请求是其他第一终端所提交的,该第一终端可将此完成的请求信息(即上述实施例中的爬取结果数据)还回爬取完成队列中,以便其他的第一终端获取。
[0065]在本发明的上述实施例中,采用分布式队列进行本地代理与云端爬虫进行交互,如上传爬取请求、通知爬取完成;并且云端第二终端的爬虫将爬取结果保存在云端BLOB数据库,本地爬取模块接收到爬取完成的通知后,按需进行下载。在上述实施例中,使用请求标签在分布式架构下标记爬取条目,以方便在本地与云端将请求与爬取结果相对应。
[0066]本实施例中所提供的各个模块与方法实施例对应步骤所提供的使用方法相同、应用场景也可以相同。当然,需要注意的是,上述模块涉及的方案可以不限于上述实施例中的内容和场景,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。
[0067]从以上的描述中,可以看出,本发明实现了如下技术效果:
[0068]采用本发明,当第一终端接收到爬取请求时,发送模块为每一个爬取请求设置第一请求标签并将爬取请求以及对应的第一请求标签发送至云服务器的云端分布式阵列中,并将爬取结果数据保存至数据库,第一读取模块从数据库中获取爬取结果数据。采用本发明,将第一终端(可以是本地计算机)作为一个代理,负责上传爬取请求而不具体地执行爬取请求,使用云端的第二终端去执行具体地爬取任务,通过多个云终端并行执行爬取请求,从而不再受本地资源和能力的局限,从而达到提升整体爬取效率的效果;另外,云端资源具有分布式特性,能够有效避免服务器对执行大量爬取请求时的屏蔽。采用本发明,解决了现有技术中使用单机执行爬取任务效率低且IP地址容易被屏蔽的问题,达到了在避免被服务器屏蔽的情况下提高执行爬取请求效率的效果。
[0069]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0070]需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0071]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0072]在本申请所提供的几个实施例中,应该理解到,所揭露的方法,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
[0073]作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0074]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0075]集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、移动终端、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0076]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种执行爬取任务的方法,其特征在于,包括: 第一终端将接收到的爬取请求发送至云服务器的云端分布式队列; 第二终端从所述云端分布式队列中读取所述爬取请求,其中,所述第二终端为云终端; 所述第二终端按照所述爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库; 所述第一终端从所述数据库读取所述爬取结果数据。
2.根据权利要求1所述的方法,其特征在于,第一终端将接收到的爬取请求发送至云服务器的云端分布式队列包括: 为所述爬取请求设置第一请求标签; 将所述第一请求标签和所述爬取请求发送至所述云端分布式队列;以及 保存所述爬取请求和所述第一请求标签至所述第一终端的数据表。
3.根据权利要求2所述的方法,其特征在于,在所述第二终端按照所述爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库的同时或之后,所述方法还包括: 将所述爬取请求的所述第一请求标签和所述爬取结果数据的存储地址保存至所述云服务器的爬取完成队列。
4.根据权利要求3所述的方法,其特征在于,所述第一终端从所述数据库读取所述爬取结果数据包括: 从所述爬取完成队列中获取所述第一请求标签及其对应的所述存储地址; 从所述存储地址对应所述数据库的存储位置中读取所述爬取结果数据。
5.根据权利要求2所述的方法,其特征在于,在所述第一终端从所述数据库读取所述爬取结果数据之后,所述方法还包括: 从所述数据表中读取所述第一请求标签的所述爬取请求; 输出所述第一请求标签的所述爬取请求和所述爬取结果数据。
6.一种执行爬取任务的装置,其特征在于,包括: 发送模块,用于第一终端将接收到的爬取请求发送至云服务器的云端分布式队列; 第一读取模块,用于第二终端从所述云端分布式队列中读取所述爬取请求,其中,所述第二终端为云终端; 爬取模块,用于所述第二终端按照所述爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库; 第二读取模块,用于所述第一终端从所述数据库读取所述爬取结果数据。
7.根据权利要求6所述的装置,其特征在于,所述发送模块包括: 设置模块,用于为所述爬取请求设置第一请求标签; 发送子模块,用于将所述第一请求标签和所述爬取请求发送至所述云端分布式队列;以及 第一保存模块,用于保存所述爬取请求和所述第一请求标签至所述第一终端的数据表。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括: 第二保存模块,用于在所述第二终端按照所述爬取请求进行网络资源的爬取,并将爬取结果数据保存至数据库的同时或之后,将所述爬取请求的所述第一请求标签和所述爬取结果数据的存储地址保存至所述云服务器的爬取完成队列。
9.根据权利要求8所述的装置,其特征在于,所述第二读取模块包括: 获取模块,用于从所述爬取完成队列中获取所述第一请求标签及其对应的所述存储地址; 第二读取子模块,用于从所述存储地址对应所述数据库的存储位置中读取所述爬取结果数据。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括: 第三读取模块,用于在所述第一终端从所述数据库读取所述爬取结果数据之后,从所述数据表中读取所述第一请求标签的所述爬取请求; 输出模块,用于输出所述第一请求标签的所述爬取请求和所述爬取结果数据。
【文档编号】G06F17/30GK104484405SQ201410779535
【公开日】2015年4月1日 申请日期:2014年12月15日 优先权日:2014年12月15日
【发明者】何恺铎 申请人:北京国双科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1