一种爬虫方法、装置、系统、设备及可读存储介质与流程

文档序号:18797254发布日期:2019-09-29 19:53阅读:151来源:国知局
一种爬虫方法、装置、系统、设备及可读存储介质与流程

本申请涉及互联网技术领域,特别涉及一种爬虫方法、装置、系统、设备及可读存储介质。



背景技术:

爬虫是按照一定的规则自动抓取万维网信息的方式,但由于被爬虫的目标通常设有防爬虫的安全机制,因此在现有的爬虫方案中,通常会利用设有多个ip地址的ip代理池来进行爬虫,这样可以频换更换爬取某个目标的ip地址,以尽可能避免被爬虫目标拦截或封锁爬虫操作所使用的ip地址。

但是,ip代理池中的ip地址需要不断维护,其数量毕竟有限,当被爬虫的目标较多时,ip代理池中的ip地址数量就显得捉襟见肘,故而现有的ip代理池无法很好地解决被爬虫目标拦截或封锁爬虫操作所使用的ip地址的问题。同时,现有爬虫方案中的ip代理池中的ip地址只作为代理ip,其需要借助其他设备才能完成爬取过程,这无疑增加了爬虫操作的复杂度,不利于高并发的爬虫操作的执行。

因此,如何避免被爬虫目标拦截或封锁爬虫操作所使用的ip地址,是本领域技术人员需要解决的问题。



技术实现要素:

有鉴于此,本申请的目的在于提供一种爬虫方法、装置、系统、设备及可读存储介质,以避免被爬虫目标拦截或封锁爬虫操作所使用的ip地址。其具体方案如下:

第一方面,本申请提供了一种爬虫方法,应用于与爬虫平台建立通信连接的任一个移动终端,包括:

接收爬虫平台发送的爬虫任务,爬虫任务至少包括:待爬取的目标和爬虫规则;

利用移动终端的ip地址和爬虫规则爬取待爬取的目标,获得与爬虫任务对应的爬虫结果;ip地址为:移动终端连接的移动通信网络为移动终端分配的ip地址;

将爬虫结果传输至爬虫平台,以便爬虫平台存储爬虫结果。

优选地,将爬虫结果传输至爬虫平台,以便爬虫平台存储爬虫结果,包括:

将爬虫结果和移动终端的id传输至爬虫平台,以便爬虫平台存储爬虫结果和移动终端的id。

优选地,移动通信网络为2g、3g、4g或5g网络。

第二方面,本申请提供了一种爬虫装置,应用于与爬虫平台建立通信连接的任一个移动终端,包括:

接收模块,用于接收爬虫平台发送的爬虫任务,爬虫任务至少包括:待爬取的目标和爬虫规则;

爬虫模块,用于利用移动终端的ip地址和爬虫规则爬取待爬取的目标,获得与爬虫任务对应的爬虫结果;ip地址为:移动终端连接的移动通信网络为移动终端分配的ip地址;

传输模块,用于将爬虫结果传输至爬虫平台,以便爬虫平台存储爬虫结果。

第三方面,本申请提供了一种爬虫系统,包括:爬虫平台和多个上述公开的爬虫装置。

优选地,爬虫平台包括:

任务管理中心,用于根据用户输入的待爬取的目标和爬虫规则生成爬虫任务;

调度中心,用于发送爬虫任务至任一个爬虫装置;

存储中心,用于存储每个爬虫任务对应的爬虫结果。

优选地,存储中心利用非关系型数据库存储爬虫结果。

优选地,爬虫平台基于web服务器搭建。

第四方面,本申请提供了一种爬虫设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序,以实现前述公开的爬虫方法。

第五方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,计算机程序被处理器执行时实现前述公开的爬虫方法。

通过以上方案可知,本申请提供了一种爬虫方法,应用于与爬虫平台建立通信连接的任一个移动终端,包括:接收爬虫平台发送的爬虫任务,爬虫任务至少包括:待爬取的目标和爬虫规则;利用移动终端的ip地址和爬虫规则爬取待爬取的目标,获得与爬虫任务对应的爬虫结果;ip地址为:移动终端连接的移动通信网络为移动终端分配的ip地址;将爬虫结果传输至爬虫平台,以便爬虫平台存储爬虫结果。

其中,本申请利用与爬虫平台建立通信连接的任一个移动终端执行爬虫任务,由于移动终端的ip地址是移动终端连接的移动通信网络为移动终端分配的,因此该ip地址为动态ip地址。所以对于一个移动终端来说,访问待爬取目标的ip地址是动态的;并且与爬虫平台建立通信连接的移动终端为多个,因此执行爬虫任务的ip地址将灵活变换,如此也就降低了被爬虫目标拦截或封锁爬虫操作所使用的ip地址的可能性。同时,本申请中的移动终端可以利用自身完成整个爬虫过程,从而避免了爬虫过程中的数据来回传输,降低了爬虫操作的复杂度,也为爬虫的高并发提供了可能。

相应地,本申请提供的一种爬虫装置、系统、设备及可读存储介质,也同样具有上述技术效果。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请公开的一种爬虫方法流程图;

图2为本申请公开的一种爬虫装置示意图;

图3为本申请公开的一种爬虫系统示意图;

图4为本申请公开的一种爬虫设备示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前,ip代理池中的ip地址需要不断维护,其数量毕竟有限,当被爬虫的目标较多时,ip代理池中的ip地址数量就显得捉襟见肘,故而现有的ip代理池无法很好地解决被爬虫目标拦截或封锁爬虫操作所使用的ip地址的问题。同时,现有爬虫方案中的ip代理池中的ip地址只作为代理ip,其无法真正爬取到数据,需要通过其他设备辅助才能完成爬取过程,这无疑增加了爬虫操作的复杂度,不利于高并发的爬虫操作的执行。为此,本申请提供了一种爬虫方案,能够降低被爬虫目标拦截或封锁爬虫操作所使用的ip地址的可能性,也为爬虫的高并发提供了可能。

参见图1所示,本申请实施例公开了一种爬虫方法,应用于与爬虫平台建立通信连接的任一个移动终端,包括:

s101、接收爬虫平台发送的爬虫任务,爬虫任务至少包括:待爬取的目标和爬虫规则;

s102、利用移动终端的ip地址和爬虫规则爬取待爬取的目标,获得与爬虫任务对应的爬虫结果;ip地址为:移动终端连接的移动通信网络为移动终端分配的ip地址;

s103、将爬虫结果传输至爬虫平台,以便爬虫平台存储爬虫结果。

在本实施例中,将爬虫结果传输至爬虫平台,以便爬虫平台存储爬虫结果,包括:将爬虫结果和移动终端的id传输至爬虫平台,以便爬虫平台存储爬虫结果和移动终端的id。

具体的,移动终端在传输爬虫结果的同时,也会将自身id传输至爬虫平台,这样爬虫平台就可以将爬虫结果和id对应存储,以便于爬虫结果的查询和管理。

需要说明的是,待爬取的目标可以具体为网站链接。爬虫规则可采用正则语句设定,并采用任意编程语言(如python)编写爬虫规则。爬虫任务至少还包括以下信息:创建该爬虫任务的账户的id、爬虫任务的id等,这些信息会一并发送至移动终端。其中,用户可以基于爬虫平台注册账户,并基于该账户在爬虫平台中创建爬虫任务,从而爬虫平台中可将不同用户创建的爬虫任务分配至不同的移动终端,从而利用移动终端执行各个爬虫任务。

在本实施例中,移动通信网络为2g、3g、4g或5g网络。需要说明的是,移动通信网络可为接入该网络的移动终端分配ip地址,且以动态方式进行分配。即:针对某一移动终端,其所使用的ip地址是动态变化的。变化规则可以为:若移动终端首次接入移动通信网络,则在预设的ip地址池中为当前移动终端选择ip地址。在该移动终端再次接入移动通信网络时,若当前接入时间与上次断网时间的时间间隔超过预设的时间阈值,则为当前移动终端重新分配ip地址;否则,继续沿用上次的ip地址。此为本申请示例的一种变化规则,也可以按照其他变化规则变换移动终端的ip地址,其他变化规则可以参考现有技术,故本实施例在此不再一一说明。

移动终端可以为手机、手表、手环、平板、电脑等能够利用sim卡(subscriberidentificationmodule,客户识别模块)接入移动通信网络的设备。

可见,本申请实施例利用与爬虫平台建立通信连接的任一个移动终端执行爬虫任务,由于移动终端的ip地址是移动终端连接的移动通信网络为移动终端分配的ip地址,因此该ip地址为动态ip地址。所以对于一个移动终端来说,访问待爬取目标的ip地址是动态的;并且与爬虫平台建立通信连接的移动终端为多个,因此执行爬虫任务的ip地址将灵活变换,也就降低了被爬虫目标拦截或封锁爬虫操作所使用的ip地址的可能性。同时,本申请中的移动终端可以利用自身完成整个爬虫过程,从而避免了爬虫过程中的数据来回传输,降低了爬虫操作的复杂度,也为爬虫的高并发提供了可能。

下面对本申请实施例提供的一种爬虫装置进行介绍,下文描述的一种爬虫装置与上文描述的一种爬虫方法可以相互参照。

参见图2所示,本申请实施例公开了一种爬虫装置,应用于与爬虫平台建立通信连接的任一个移动终端,包括:

接收模块201,用于接收爬虫平台发送的爬虫任务,爬虫任务至少包括:待爬取的目标和爬虫规则;

爬虫模块202,用于利用移动终端的ip地址和爬虫规则爬取待爬取的目标,获得与爬虫任务对应的爬虫结果;ip地址为:移动终端连接的移动通信网络为移动终端分配的ip地址;

传输模块203,用于将爬虫结果传输至爬虫平台,以便爬虫平台存储爬虫结果。

在一种具体实施方式中,传输模块具体用于:

将爬虫结果和移动终端的id传输至爬虫平台,以便爬虫平台存储爬虫结果和移动终端的id。

其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

需要说明的是,该装置可以具体为安装在移动终端上的应用程序。

可见,本实施例提供了一种爬虫装置,包括:接收模块、爬虫模块以及传输模块。首先由接收模块接收爬虫平台发送的爬虫任务,爬虫任务至少包括:待爬取的目标和爬虫规则;然后爬虫模块利用移动终端的ip地址和爬虫规则爬取待爬取的目标,获得与爬虫任务对应的爬虫结果;最后传输模块将爬虫结果传输至爬虫平台,以便爬虫平台存储爬虫结果。如此各个模块之间分工合作,各司其职,从而降低了被爬虫目标拦截或封锁爬虫操作所使用的ip地址的可能性,也为爬虫的高并发提供了可能。

下面对本申请实施例提供的一种爬虫系统进行介绍,下文描述的一种爬虫系统与上文描述的一种爬虫方法及装置可以相互参照。

参见图3所示,本申请实施例公开了一种爬虫系统,包括:爬虫平台和多个上述公开的爬虫装置,如图3中的爬虫装置1、爬虫装置2……爬虫装置n;

其中,爬虫平台包括:

任务管理中心301,用于根据用户输入的待爬取的目标和爬虫规则生成爬虫任务;

调度中心302,用于发送爬虫任务至任一个爬虫装置;

存储中心303,用于存储每个爬虫任务对应的爬虫结果。

在一种具体实施方式中,存储中心利用非关系型数据库存储爬虫结果。非关系型数据库能够优化存储结构,提高查询性能,如elasticsearch等开源数据库。

在一种具体实施方式中,爬虫平台基于web服务器搭建,搭建环境可以为linux、apache、mysql或php等。

需要说明的是,爬虫平台和移动终端通过超文本传输协议(http,hypertexttransferprotocol)进行数据交互,也就是说,爬虫任务和爬虫结果以http报文形式进行传输。当移动终端与爬虫平台建立通信连接,爬虫平台便可以检测到该移动终端,并为该移动终端分配爬虫任务并下发。当移动终端完成一个爬虫任务后,爬虫平台会为移动终端分配新的爬虫任务。若需要更换移动终端的ip地址,则按照该移动终端所连移动通信网络使用的ip地址变化规则变换当前移动终端的ip即可。具体的,移动终端通过移动通信网络与爬虫平台建立通信连接。

当用户查询某个爬虫任务的爬虫结果,则爬虫平台根据用户输入的查询请求在存储中心查询对应的爬虫结果,并将查询到的爬虫结果进行可视化展示。

可见,在本实施例提供的爬虫系统中,爬虫平台用于收集、分配爬虫任务,并收集移动终端传输的爬虫结果。其中,利用移动终端完成爬虫任务,可以降低被爬虫目标拦截或封锁爬虫操作所使用的ip地址的可能性,也为爬虫的高并发提供了可能。

下面对本申请实施例提供的一种爬虫设备进行介绍,下文描述的一种爬虫设备与上文描述的一种爬虫方法、装置及系统可以相互参照。

参见图4所示,本申请实施例公开了一种爬虫设备,包括:

存储器401,用于保存计算机程序;

处理器402,用于执行所述计算机程序,以实现以下步骤:

接收爬虫平台发送的爬虫任务,爬虫任务至少包括:待爬取的目标和爬虫规则;利用移动终端的ip地址和爬虫规则爬取待爬取的目标,获得与爬虫任务对应的爬虫结果;ip地址为:移动终端连接的移动通信网络为移动终端分配的ip地址;将爬虫结果传输至爬虫平台,以便爬虫平台存储爬虫结果。

在本实施例中,所述处理器执行所述存储器中保存的计算机子程序时,可以具体实现以下步骤:将爬虫结果和移动终端的id传输至爬虫平台,以便爬虫平台存储爬虫结果和移动终端的id。

下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种爬虫方法、装置、系统及设备可以相互参照。

一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的爬虫方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。

需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的可读存储介质中。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1