网络爬取方法和装置与流程 - 坪山网站建设公司

网络爬取方法和装置与流程

文档序号:13072764阅读:206来源:国知局
网络爬取方法和装置与流程

本发明涉及通信技术,尤其涉及一种网络爬取方法和装置。



背景技术:

随着网络资源的不断丰富,越来越多的平台需要大量的数据支撑才能完成相应的功能。通常获取数据资源的渠道包括:通过托管平台登录后获得数据、直接连接其他系统的数据库以及采用数据接口的方式进行数据对接。但这些渠道或多或少会出现无法获取相关数据、成本较高的问题。因此,目前采用网络爬取技术对网页上的数据进行爬取,以便于平台寻找到网页和相关数据。

由于curl(commandlineuniformresourcelocator)函数支持get、post等浏览器行为,能够达到一个模拟浏览器操作的目的,因此,在现有网络爬取方法中,通常使用rcurl程序包中的curl函数完成网页数据的抓取过程,进而获取网页上的数据。然而,仅采用curl函数的现有网络爬取方法curl无法完成数据量较大的爬取任务。因此,亟需一种能够爬取大量数据的网络爬取方法。



技术实现要素:

本发明提供一种网络爬取方法和装置,以以解决现有的网络爬取方法无法完成数量量较大的爬取任务的问题。

第一方面,本发明提供一种网络爬取方法,应用于网络爬取系统,所述网络爬取系统包括:一个主节点和多个子节点,针对任一子节点,所述方法包括:

所述子节点接收所述主节点发送的子任务,所述子任务中包括爬取任务的任务类型以及所述子节点对应的搜索组中的网站地址,所述搜索组中包括至少一个网站地址,所述搜索组是所述主节点根据分布式编程框架map-reduce和所述爬取任务的任务类型,对所述至少一个网站地址进行划分得到的;

所述子节点根据所述子任务进行爬取,将得到的爬取数据存储到本地存储器中;

所述子节点在所述本地存储器中进行查询,得到查询结果,并向所述主节点发送所述查询结果。

可选地,所述子节点根据所述子任务进行爬取,所述将得到的爬取数据存储到本地存储器中,包括:

所述子节点对所述子任务中的网站地址进行遍历连接,得到连接成功的第一网站地址和连接失败的第二网站地址;

所述子节点获取所述第一网站地址中待爬取的网页数据页对应的链接;

所述子节点对所述第一网站地址中各所述待爬取的网页数据页对应的链接进行遍历连接,得到连接成功的第一链接和连接失败的第二链接;

所述子节点根据所述爬取任务的任务类型,对所述第一链接对应的各所述网页数据进行过滤处理,得到所述第一链接对应的网页数据;

所述子节点对所述第一链接对应的网页数据进行解析,得到目标爬取数据;

所述子节点将所述目标爬取数据以及对应的第一链接存储到所述本地存储器中。

可选地,所述方法还包括:

所述子节点重新连接所述第二链接,并判断所述子节点是否与所述第二链接连接成功;

若是,则所述子节点根据所述爬取任务的任务类型,对所述第二链接对应的各所述网页数据进行过滤处理,得到所述第二链接对应的网页数据,并对所述第二链接对应的网页数据进行解析,得到所述目标爬取数据,并将所述目标爬取数据以及对应的第二链接存储到所述本地存储器中;

若否,重复执行连接所述第二链接,并判断所述子节点是否与所述第二链接连接成功的操作,若在重复连接的次数超过第一预设次数时,则所述子节点将所述第二链接存储到所述本地存储器中。

可选地,所述方法还包括:

所述子节点重新连接所述第二网站地址,并判断所述子节点是否与所述第二网站地址连接成功;

若是,所述子节点获取所述第二网站地址中待爬取的网页数据页对应的链接;

所述子节点对所述第二网站地址中各所述待爬取的网页数据页对应的链接进行遍历连接,得到连接成功的第三链接和连接失败的第四链接;

所述子节点根据所述爬取任务的任务类型,对所述第三链接对应的各所述网页数据进行过滤处理,得到所述第三链接对应的网页数据;

所述子节点对所述第三链接对应的网页数据进行解析,得到所述目标抓取数据;

所述子节点将所述目标爬取数据以及对应的第三链接存储到所述本地存储器中;

若否,重复执行连接所述第二网站地址,并判断所述子节点是否与所述第二网站地址连接成功的操作,若在重复连接的次数超过第二预设次数时,则所述子节点将所述第二网站地址存储到所述本地存储器中。

可选地,所述方法还包括:

所述子节点重新连接所述第四链接,并判断所述子节点是否与所述第四链接连接成功;

若是,则所述子节点根据所述爬取任务的任务类型,对所述第四链接对应的各所述网页数据进行过滤处理,得到所述第四链接对应的网页数据,并对所述第四链接对应的网页数据进行解析,得到所述目标抓取数据,并将所述目标爬取数据以及对应的第四链接存储到所述本地存储器中;

若否,重复执行连接所述第四链接,并判断所述子节点是否与所述第四链接连接成功的操作,若在重复连接的次数超过第三预设次数时,则所述子节点将所述第四链接存储到所述本地存储器中。

可选地,所述子任务中还包括状态指示位,所述状态指示位用于指示所述子节点是否执行所述子任务。

第二方面,本发明提供一种网络爬取方法,应用于网络爬取系统,所述网络爬取系统包括:一个主节点和多个子节点,所述方法包括:

所述主节点获取用户输入的查询请求,并根据所述查询请求获取爬取任务的任务类型,所述查询请求对应至少一个网站地址;

所述主节点根据map-reduce和所述爬取任务的任务类型,对所述至少一个网站地址进行划分,得到至少一个搜索组,每个搜索组包括至少一个网站地址,每个搜索组对应一个子任务,每个子任务对应一个子节点;

所述主节点向各所述子节点发送各自对应的子任务,所述子任务中包括所述爬取任务的任务类型以及各自对应的搜索组中的网站地址;

所述主节点接收各所述子节点发送的查询结果,并对多个查询结果进行汇总处理,得到目标查询结果。

可选地,所述子任务中还包括:状态指示位,所述状态指示位用于指示所述子节点是否执行所述子任务。

第三方面,本发明提供一种网络爬取装置,应用于网络爬取系统,所述网络爬取系统包括:一个主节点和多个子节点,所述装置包括:

接收模块,用于接收所述主节点发送的子任务,所述子任务中包括爬取任务的任务类型以及所述子节点对应的搜索组中的网站地址,所述搜索组中包括至少一个网站地址,所述搜索组是所述主节点根据map-reduce和所述爬取任务的任务类型,对所述至少一个网站地址进行划分得到的;

爬取模块,用于根据所述子任务进行爬取,将得到的爬取数据存储到本地存储器中;

查询模块,用于在所述本地存储器中进行查询,得到查询结果;

发送模块,用于向所述主节点发送所述查询结果。

可选地,所述爬取模块具体用于:对所述子任务中的网站地址进行遍历连接,得到连接成功的第一网站地址和连接失败的第二网站地址;

获取所述第一网站地址中待爬取的网页数据页对应的链接;

对所述第一网站地址中各所述待爬取的网页数据页对应的链接进行遍历连接,得到连接成功的第一链接和连接失败的第二链接;

根据所述爬取任务的任务类型,对所述第一链接对应的各所述网页数据进行过滤处理,得到所述第一链接对应的网页数据;

对所述第一链接对应的网页数据进行解析,得到目标爬取数据;

将所述目标爬取数据以及对应的第一链接存储到所述本地存储器中。

可选地,所述爬取模块具体用于:重新连接所述第二链接,并判断所述子节点是否与所述第二链接连接成功;

若是,则所述子节点根据所述爬取任务的任务类型,对所述第二链接对应的各所述网页数据进行过滤处理,得到所述第二链接对应的网页数据,并对所述第二链接对应的网页数据进行解析,得到所述目标爬取数据,并将所述目标爬取数据以及对应的第二链接存储到所述本地存储器中;

若否,重复执行连接所述第二链接,并判断所述子节点是否与所述第二链接连接成功的操作,若在重复连接的次数超过第一预设次数时,则所述子节点将所述第二链接存储到所述本地存储器中。

可选地,所述爬取模块具体用于:重新连接所述第二网站地址,并判断所述子节点是否与所述第二网站地址连接成功;

若是,所述子节点获取所述第二网站地址中待爬取的网页数据页对应的链接;

对所述第二网站地址中各所述待爬取的网页数据页对应的链接进行遍历连接,得到连接成功的第三链接和连接失败的第四链接;

根据所述爬取任务的任务类型,对所述第三链接对应的各所述网页数据进行过滤处理,得到所述第三链接对应的网页数据;

对所述第三链接对应的网页数据进行解析,得到所述目标抓取数据;

将所述目标爬取数据以及对应的第三链接存储到所述本地存储器中;

若否,重复执行连接所述第二网站地址,并判断所述子节点是否与所述第二网站地址连接成功的操作,若在重复连接的次数超过第二预设次数时,则所述子节点将所述第二网站地址存储到所述本地存储器中。

可选地,所述爬取模块具体用于:重新连接所述第四链接,并判断所述子节点是否与所述第四链接连接成功;

若是,则所述子节点根据所述爬取任务的任务类型,对所述第四链接对应的各所述网页数据进行过滤处理,得到所述第四链接对应的网页数据,并对所述第四链接对应的网页数据进行解析,得到所述目标抓取数据,并将所述目标爬取数据以及对应的第四链接存储到所述本地存储器中;

若否,重复执行连接所述第四链接,并判断所述子节点是否与所述第四链接连接成功的操作,若在重复连接的次数超过第三预设次数时,则所述子节点将所述第四链接存储到所述本地存储器中。

第四方面,本发明提供一种网络爬取装置,应用于网络爬取系统,所述网络爬取系统包括:一个主节点和多个子节点,所述装置包括:

接收模块,用于获取用户输入的查询请求,并根据所述查询请求获取爬取任务的任务类型,所述查询请求对应至少一个网站地址;

划分模块,用于根据map-reduce和所述爬取任务的任务类型,对所述至少一个网站地址进行划分,得到至少一个搜索组,每个搜索组包括至少一个网站地址,每个搜索组对应一个子任务,每个子任务对应一个子节点;

发送模块,用于向各所述子节点发送各自对应的子任务,所述子任务中包括所述爬取任务的任务类型以及各自对应的搜索组中的网站地址;

所述接收模块,还用于所述主节点接收各所述子节点发送的查询结果,并对多个查询结果进行汇总处理,得到目标查询结果。

本发明提供的网络爬取方法和装置,该方法通过主节点根据用户的查询请求获取爬取任务的任务类型和网站地址,主节点再根据map-reduce和爬取任务的任务类型对各网站地址进行划分,形成与各子节点对应的子任务,将各子任务发送给各自对应的子节点,各子节点根据对应的子任务进行爬取,将得到的爬取数据存储到本地存储器中,再根据在本地存储器中进行查询,得到查询结果,并向主节点发送查询结果,主节点通过接收各子节点发送各查询结果,获取目标查询结果。本发明通过多个子节点能够实现大量网页数据的爬取过程,不仅使得用户能够快速、全面的获取所需信息,还能够满足用户的各种爬取需求。

附图说明

图1为本发明提供的网络爬取方法的场景示意图;

图2为本发明提供的网络爬取方法的信令流程图;

图3为本发明提供的网络爬取方法的流程图一;

图4为本发明提供的网络爬取方法的流程图二;

图5为本发明提供的网络爬取装置的结构示意图一;

图6为本发明提供的网络爬取装置的结构示意图二。

具体实施方式

图1为本发明提供的网络爬取方法的场景示意图,如图1所示,本发明网络爬取系统包括:一个主节点和多个子节点。其中,主节点可采用一台服务器,多个子节点采用多个服务器。该系统可应用于公开数据获取的场景,例如,该系统能够物品原材料、物品的生产信息、物品的质量追溯、物品的销售信息等信息,透明化了物品的一个生产周期的链条信息,便于用户能够清楚、准确的掌握,以开展相关工作。又例如,该系统能够应用到各个学校的报考信息、论文发表信息等。该系统能够应用到生活中的各行各业中,无需采用面对面的方式或者采用大量的搜索的方式皆可获取到信息,使得用户能获取需要的公开数据,节省了用户的时间和成本。

下面结合图1所示的系统,对本发明提供的网络爬取方法的具体技术方案进行详细说明。图2为本发明提供的网络爬取方法的信令流程图。本实施例中主节点可向多个子节点发送查询请求对应的子任务,使得各子节点在各自对应的本地存储器中查询是否存储有目标爬取数据,各子节点再向主节点发送各自对应的查询结果,由主节点对多个查询结果进行汇总处理,以得到目标查询结果,即用户所需公开的数据信息。如图2所示,本实施例只针对主节点与任一子节点的网络爬取过程进行详细说明,主节点与其余子节点的网络爬取过程与之过程相同,此处不做赘述。本实施例的网络爬取方法包括:

s101、主节点获取用户输入的查询请求,并根据查询请求获取爬取任务的任务类型,查询请求对应至少一个网站地址。

具体地,本实施例中主节点根据用户输入的查询请求不仅能够分析得到爬取任务的任务类型,还能够得到用户想要在哪些网站上进行信息的查询过程。例如,本实施例中爬取任务的任务类型可为物品原材料的查询请求、物品质检信息的查询请求、学校报考信息的查询请求等各种情况。本实施例对爬取任务的任务类型的具体种类不做限定,只需满足主节点能够根据查询请求获取爬取任务的任务类型即可。而且,本实施例中查询请求对应的网站地址可根据用户经验在各种搜索引擎、学校网站、专门的部门网站等网站地址上进行爬取过程,本实施例对网站地址的个数和种类不做限定,只需满足主节点能够根据查询请求对网站地址进行获取即可。

s102、主节点根据分布式编程框架map-reduce和爬取任务的任务类型,对至少一个网站地址进行划分,得到至少一个搜索组,每个搜索组包括至少一个网站地址,每个搜索组对应一个子任务,每个子任务对应一个子节点。

具体地,本实施例中主节点基于map-reduce和爬取任务的任务类型能够分析出用户的查询请求中网站地址的数量,进而根据各子节点能够处理的网站地址的数量对网站地址进行划分,使得在各子节点的承载能力范围内皆能实现快速、高效的抓取过程。其中,本实施例中各子节点对应的搜索组中网站地址的个数具体可根据子节点的承载能力进行划分,划分的网站地址个数可相同,也可不同,本实施例对此不做限定。

进一步地,主节点基于map-reduce和爬取任务的任务类型还能确定各子节点的抓取基准、抓取时间和抓取顺序等,使得各子节点能够按照具体的执行策略进行各自对应的子任务。例如,用户需要查询物品的质检信息,主节点可基于map-reduce和爬取任务的任务类型确定各子节点按照搜索物品条码的子任务执行策略进行各自对应的子任务。

进一步地,主节点还能够控制各子节点的工作状态,本实施例对主节点控制各子节点的方式不做限定。可选地,子任务中还包括:状态指示位,状态指示位用于指示子节点是否执行子任务。具体地,主节点可通过状态指示位可实时观察到各子节点的当前工作状态,以便主节点能够动态调整各子节点是否停止或者启动各自对应的子任务。其中,若主节点需要向某个子节点分发对应的子任务,可通过状态指示位指示该子节点执行对应的子任务;若主节点需要向某个子节点停止执行子任务,可通过状态指示位指示该子节点停止执行对应的子任务。

s103、主节点向子节点发送子任务,子任务中包括爬取任务的任务类型以及搜索组中的网站地址。

s104、子节点根据子任务进行爬取,将得到的爬取数据存储到与子节点本地存储器中。

具体地,由于子节点与子任务一一对应,子任务与搜索组一一对应,因此,主节点可向各子节点发送各自对应的子任务,各子节点便可接收到各自对应的子任务。又由于子任务中包括爬取的任务类型和网站地址,因此,各子节点能够按照具体执行策略对网站地址中的网页数据进行爬取,从而得到爬取数据。而且各子节点还可将各自得到的爬取数据存储到各自对应的本地存储器中。本实施例中在各子节点进行各自对应的子任务之前,各子节点可对各自对应的本地存储器进行清空处理。且本实施例对存储到本地存储器中的爬取数据的具体形式不做限定,只需满足各子节点能够在各自对应的本地存储器中进行查询即可。

s105、子节点根据子任务在本地存储器中进行查询,得到查询结果。

s106、子节点向主节点发送查询结果。

s107、主节点对各子节点发送的查询结果进行汇总处理,得到目标查询结果。

具体地,由于子节点对应的本地存储器中存储有待查询的爬取数据,因此,子节点可根据子任务在对应的本地存储器中进行查询,从而得到查询结果,子节点再将查询结果发送给主节点,主节点对接收到的各子节点发送的查询结果进行汇总处理,得到目标查询结果,以便提供向用户及时、准确的信息。

进一步地,若用户还需查询与当前查询请求类型相同的请求,则子节点可直接在对应的本地存储器中进行查询,无需再对网络地址的网页数据进行繁琐的爬取过程,节省了爬取时间,且提高了查询的速率。

在一个具体的实施例中,用户向主节点输入获取物品质检信息的查询请求,主节点接收到相应的查询请求后向各子节点派发各自对应的子任务。由于各子节点各自对应的本地存储器中存放有所有物品的质检信息,如质检号码、质检机构、质检时间、质检人员、质检结果等,因此,各子节点可根据各自对应的子任务在各自的本地存储器中进行查询,得到查询结果。各子节点再将各自的查询结果发送给主节点,主节点再对这些查询结果进行汇总处理,得到该物品的具体质检信息。这样,由于该系统使得物品质检信息透明化,因此,用户无需进行面对面的交流方式或者大量的查询工作才能掌握到物品质检信息,节省了用户的成本,还提高了用户的工作效率。

本实施例提供的网络爬取方法,通过主节点根据用户的查询请求获取爬取任务的任务类型和网站地址,主节点再根据map-reduce和爬取任务的任务类型对各网站地址进行划分,形成与各子节点对应的子任务,将各子任务发送给各自对应的子节点,各子节点根据对应的子任务进行爬取,将得到的爬取数据存储到本地存储器中,再根据在本地存储器中进行查询,得到查询结果,并向主节点发送查询结果,主节点通过接收各子节点发送各查询结果,获取目标查询结果。本实施例通过多个子节点能够实现大量网页数据的爬取过程,不仅使得用户能够快速、全面的获取所需信息,还能够满足用户的各种爬取需求。

下面结合图3和图4,针对任一子节点根据子任务进行爬取,且将得到的爬取数据存储到对应的本地存储器中的具体过程进行详细说明。图3为本发明提供的网络爬取方法的流程图一,图4为本发明提供的网络爬取方法的流程图二。由于任一子节点根据子任务对网站地址进行遍历连接会出现连接成功和连接失败两种情形,因此,本实施例结合图3对连接成功的情形进行详细说明,本实施例结合图4对连接失败的情形进行详细说明。

一方面,如图3所示,本实施例网络爬取方法还包括:

s201、子节点对子任务中的网站地址进行遍历连接,得到连接成功的第一网站地址。

s202、子节点获取第一网站地址中待爬取的网页数据页对应的链接。

s203、子节点对第一网站地址中各待爬取的网页数据页对应的链接进行遍历连接,得到连接成功的第一链接和连接失败的第二链接。

具体地,针对连接成功的第一网站地址,本实施例子节点首先需要获取第一网站地址中的待爬取的网页数据对应的所有链接,然后子节点再一一连接所有链接,接着根据两者的连接结果,将所有链接分为连接成功的第一链接和连接失败的第二链接。

进一步地,本实施例中子节点会采用不同的方法对第一链接和第二链接进行处理。对于第一链接,本实施例可执行步骤s204;对于第二链接,本实施例可执行步骤s20。本实施例中步骤s204可优先步骤s207执行,步骤s207可优先步骤s204执行,步骤s204和步骤s207也可同时执行,本实施例对步骤s204和步骤s207的执行顺序不做限定。

针对连接成功的第一链接,本实施例网络爬取方法还包括:

s204、子节点根据爬取任务的任务类型,对第一链接对应的各网页数据进行过滤处理,得到第一链接对应的网页数据。

s205、子节点对第一链接对应的网页数据进行解析,得到目标爬取数据。

s206、子节点将目标爬取数据以及对应的第一链接存储到本地存储器中。

具体地,由于爬取任务的任务类型能够确定子节点进行子任务的具体执行策略,因此,子节点可对第一链接对应的各网页数据进行过滤处理,滤除与爬取任务的任务类型无关的网页数据,保留下与爬取任务的任务类型有关且符合标准或规范的网页数据,即为第一链接对应的网页数据。例如,子节点需要获取物品条码,那么与物品条码无关的网页数据便可滤除。且由于物品条码为13位,若网页数据上物品条码为12位,则该网页数据也被滤除。

进一步地,本实施例中子节点对第一链接对应的网页数据解析,并将解析得到的目标爬取数据以及对应的第一链接一起存放在本地存储器中,便于子节点定位该目标爬取数据具体是在哪个链接上获取的,各子节点通过向主节点传输能够便于用户查找。

针对连接失败的第二链接,本实施例网络爬取方法还包括:

s207、子节点重新连接第二链接,并判断子节点是否与第二链接连接成功。若是,则执行步骤s208;若否,则执行步骤s209。

s208、子节点根据爬取任务的任务类型,对第二链接对应的各网页数据进行过滤处理,得到第二链接对应的网页数据,并对第二链接对应的网页数据进行解析,得到目标爬取数据,并将目标爬取数据以及对应的第二链接存储到本地存储器中。

其中,s208与图3实施例中的s204、s205与s206等实现方式类似,本实施例此处不再赘述。

s209、重复执行连接第二链接,并判断子节点是否与第二链接连接成功的操作,若在重复连接的次数超过第一预设次数时,则子节点将第二链接存储到本地存储器中。

具体地,由于网络、解析等原因,子节点连接链接时会出现连接失败的情形。现有的网络爬取方法没有容错机制,因此无法重新连接该链接。而本实施例中子节点还会继续连接连接失败的第二链接,能够为目标网页数据的抓取提供更多的数据来源,使得用户能够得到全面的信息。

此处需要说明的是,第一预设次数可根据经验值进行设定,本实施对此不做限定。而且本实施例中各子节点各自对应的本地存储器中可包括成功记录表和错误记录表。其中,若网站地址包括多个地址,且多个地址有多个级别,如一级地址、二级地址、三级地址等,则成功记录表可按照级别高低将同一个网站地址中不同级别上的链接以及相应的目标爬取数据进行存储,错误记录表也可按照级别高低将同一个网站地址中不同级别上的链接进行罗列存储;若网站地址只有一个,则成功记录表直接对网站地址和该网站地址对应的目标爬取数据进行存储,错误记录表中可存储该网站地址、出错原因和重复连接该网站地址的次数等信息,以方便错误定位。其中出错原因可为网络原因、解析原因等,本实施例对此不做限定。

另一方面,如图4所示,本实施例网络爬取方法还包括:

s301、子节点对子任务中的网站地址进行遍历连接,得到连接失败的第二网站地址。

具体地,由于网络、解析等原因,子节点连接链接时会出现连接失败的情形。现有的网络爬取方法没有容错机制,因此无法重新连接网站地址。而本实施例中子节点还会继续连接连接失败的第二网站地址,能够为目标网页数据的抓取提供更多的数据来源,使得用户能够得到全面的信息。

s302、子节点重新连接第二网站地址,并判断子节点是否与第二网站地址连接成功。若是,则执行步骤s303;若否,则执行步骤s311。

s303、子节点获取第二网站地址中待爬取的网页数据页对应的链接。

s304、子节点对第二网站地址中各待爬取的网页数据页对应的链接进行遍历连接,得到连接成功的第三链接和连接失败的第四链接。

具体地,针对连接失败的第二网站地址,本实施例子节点首先需要获取第二网站地址中的待爬取的网页数据对应的所有链接,然后子节点再一一所有的链接,接着根据两者的连接结果,将所有链接分为连接成功的第三链接和连接失败的第四链接。

进一步地,本实施例中子节点会采用不同的方法对第三链接和第四链接进行处理。对于第三链接,本实施例可执行步骤s305;对于第四链接,本实施例可执行步骤s308,本实施例中步骤s305可优先步骤s308执行,步骤s308可优先步骤s305执行,步骤s305和步骤308也可同时执行,本实施例对步骤s305和步骤s308的执行顺序不做限定。

针对连接成功的第三链接,本实施例网络爬取方法还包括:

s305、子节点根据爬取任务的任务类型,对第三链接对应的各网页数据进行过滤处理,得到第三链接对应的网页数据。

s306、子节点对第三链接对应的网页数据进行解析,得到目标抓取数据。

s307、子节点将目标爬取数据以及对应的第三链接存储到本地存储器中。

具体地,由于爬取任务的任务类型能够确定子节点进行子任务的具体执行策略,因此,子节点可对第三链接对应的各网页数据进行过滤处理,滤除与爬取任务的任务类型无关的网页数据,保留下与爬取任务的任务类型有关且符合标准或规范的网页数据,即为第三链接对应的网页数据。例如,子节点需要获取物品条码,那么与物品条码无关的网页数据便可滤除。且由于物品条码为13位,若网页数据上物品条码为12位,则该网页数据也被滤除。

进一步地,本实施例中子节点对第三链接对应的网页数据解析,并将解析得到的目标爬取数据以及对应的第三链接一起存放在本地存储器中,便于子节点定位目标爬取数据是具体在哪个链接上获取的,各子节点通过向主节点传输能够便于用户查找。

针对连接失败的第二链接,本实施例网络爬取方法还包括:

s308、子节点重新连接第四链接,并判断子节点是否与第四链接连接成功。若是,则执行步骤s309;若否,则执行步骤s310。

s309、子节点根据爬取任务的任务类型,对第四链接对应的各网页数据进行过滤处理,得到第四链接对应的网页数据,并对第四链接对应的网页数据进行解析,得到目标抓取数据,并将目标爬取数据以及对应的第四链接存储到本地存储器中。

其中,s308与图4实施例中的s305、s306与s307等实现方式类似,本实施例此处不再赘述。

s310、重复执行连接第四链接,并判断子节点是否与第四链接连接成功的操作,若在重复连接的次数超过第三预设次数时,则子节点将第四链接存储到本地存储器中。

具体地,由于网络、解析等原因,子节点连接链接时会出现连接失败的情形。现有的网络爬取方法没有容错机制,因此无法重新连接该链接。而本实施例中子节点还会继续连接连接失败的第四链接,能够为目标网页数据的抓取提供更多的数据来源,使得用户能够得到全面的信息。

s311、重复执行连接第二网站地址,并判断子节点是否与第二网站地址连接成功的操作,若在重复连接的次数超过第二预设次数时,则子节点将第二网站地址存储到本地存储器中。

具体地,由于网络、解析等原因,子节点连接网站地址仍会出现连接失败的情形。现有的网络爬取方法没有容错机制,因此无法重新连接该链接。而本实施例中子节点还会继续连接连接失败的第二网站地址,能够为目标网页数据的抓取提供更多的数据来源,使得用户能够得到全面的信息。

此处需要说明的是,第二预设次数和第三预设次数皆可根据经验值进行设定,且第一预设次数、第二预设次数与第三预设次数可相同,也可不相同,本实施对此不做限定。而且本实施例中各子节点各自对应的本地存储器中可包括成功记录表和错误记录表。其中,若网站地址包括多个地址,且多个地址有多个级别,如一级地址、二级地址、三级地址等,则成功记录表可按照级别高低的规则将同一个网站地址中不同级别上的链接以及目标爬取数据进行罗列存储,错误记录表也可按照级别高低的规则将同一个网站地址中不同级别上的链接进行罗列存储;若网站地址只有一个,则成功记录表直接对网站地址和该网站地址对应的目标爬取数据进行存储,错误记录表中可存储该网站地址、出错原因和重复连接该网站地址的次数等信息,以方便错误定位。其中出错原因可为网络原因、解析原因等,本实施例对此不做限定。

图5为本发明提供的网络爬取装置的结构示意图一,如图5所示,本实施例网络爬取装置10应用于网络爬取系统,所述网络爬取系统包括:一个主节点和多个子节点,所述网络爬取装置10包括:

接收模块11,用于接收所述主节点发送的子任务,所述子任务中包括爬取任务的任务类型以及所述子节点对应的搜索组中的网站地址,所述搜索组中包括至少一个网站地址,所述搜索组是所述主节点根据map-reduce和所述爬取任务的任务类型,对所述至少一个网站地址进行划分得到的;

爬取模块12,用于根据所述子任务进行爬取,将得到的爬取数据存储到本地存储器中;

查询模块13,用于在所述本地存储器中进行查询,得到查询结果;

发送模块14,用于向所述主节点发送所述查询结果。

可选地,所述爬取模块12具体用于:对所述子任务中的网站地址进行遍历连接,得到连接成功的第一网站地址和连接失败的第二网站地址;

获取所述第一网站地址中待爬取的网页数据页对应的链接;

对所述第一网站地址中各所述待爬取的网页数据页对应的链接进行遍历连接,得到连接成功的第一链接和连接失败的第二链接;

根据所述爬取任务的任务类型,对所述第一链接对应的各所述网页数据进行过滤处理,得到所述第一链接对应的网页数据;

对所述第一链接对应的网页数据进行解析,得到目标爬取数据;

将所述目标爬取数据以及对应的第一链接存储到所述本地存储器中。

可选地,所述爬取模块12具体还用于:重新连接所述第二链接,并判断所述子节点是否与所述第二链接连接成功;

若是,则根据所述爬取任务的任务类型,对所述第二链接对应的各所述网页数据进行过滤处理,得到所述第二链接对应的网页数据,并对所述第二链接对应的网页数据进行解析,得到所述目标爬取数据,并将所述目标爬取数据以及对应的第二链接存储到所述本地存储器中;

若否,重复执行连接所述第二链接,并判断所述子节点是否与所述第二链接连接成功的操作,若在重复连接的次数超过第一预设次数时,则所述子节点将所述第二链接存储到所述本地存储器中。

可选地,所述爬取模块12具体还用于:重新连接所述第二网站地址,并判断所述子节点是否与所述第二网站地址连接成功;

若是,所述子节点获取所述第二网站地址中待爬取的网页数据页对应的链接;

对所述第二网站地址中各所述待爬取的网页数据页对应的链接进行遍历连接,得到连接成功的第三链接和连接失败的第四链接;

根据所述爬取任务的任务类型,对所述第三链接对应的各所述网页数据进行过滤处理,得到所述第三链接对应的网页数据;

对所述第三链接对应的网页数据进行解析,得到所述目标抓取数据;

将所述目标爬取数据以及对应的第三链接存储到所述本地存储器中;

若否,重复执行连接所述第二网站地址,并判断所述子节点是否与所述第二网站地址连接成功的操作,若在重复连接的次数超过第二预设次数时,则所述子节点将所述第二网站地址存储到所述本地存储器中。

可选地,所述爬取模块12具体还用于:重新连接所述第四链接,并判断所述子节点是否与所述第四链接连接成功;

若是,则所述子节点根据所述爬取任务的任务类型,对所述第四链接对应的各所述网页数据进行过滤处理,得到所述第四链接对应的网页数据,并对所述第四链接对应的网页数据进行解析,得到所述目标抓取数据,并将所述目标爬取数据以及对应的第四链接存储到所述本地存储器中;

若否,重复执行连接所述第四链接,并判断所述子节点是否与所述第四链接连接成功的操作,若在重复连接的次数超过第三预设次数时,则所述子节点将所述第四链接存储到所述本地存储器中。

本发明实施例提供的网络爬取装置10,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。

图6为本发明提供的网络爬取装置的结构示意图二,如图6所示,本实施例网络爬取装置20应用于网络爬取系统,所述网络爬取系统包括:一个主节点和多个子节点,所述网络爬取装置20包括:

接收模块21,用于获取用户输入的查询请求,并根据所述查询请求获取爬取任务的任务类型,所述查询请求对应至少一个网站地址;

划分模块22,用于根据map-reduce和所述爬取任务的任务类型,对所述至少一个网站地址进行划分,得到至少一个搜索组,每个搜索组包括至少一个网站地址,每个搜索组对应一个子任务,每个子任务对应一个子节点;

发送模块23,用于向各所述子节点发送各自对应的子任务,所述子任务中包括所述爬取任务的任务类型以及各自对应的搜索组中的网站地址;

所述接收模块21,还用于所述主节点接收各所述子节点发送的查询结果,并对多个查询结果进行汇总处理,得到目标查询结果。

本发明实施例提供的网络爬取装置20,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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

相关内容推荐

商丘网络推广选复仇者下拉网络公司推广敢云速捷超卓啤管机联系仟捷网络下拉推广免费网络推广有哪些渠道山东品牌网络推广费用医用泵联系仟捷网络下拉推广网络推广技术询问i火28星福州天雪网络推广四川网络推广负责营销网络推广咨询d火27星中宁企业网络推广公司盐池旅游网络推广方案哈尔滨网络推广抉择友拓科技湛江教育网络推广公司直通车是网络推广吗网络推广的主要客户群网络运营推广中级试卷网络推广怎么做旬去上海百首唐山网络推广方式网络推广得找阮文涛首推绍兴手机端网络推广产品服务网络推广任务分配大同网络推广选复仇者下拉湖北如何做网络推广网络推广方案 蜘蛛园网络推广留下线索网络推广分析只选r火15星网络互换推广网络推广如何不被冻结家政行业网络推广有哪些渠道与李佳琦有关的网络推广的淄川淄博网络推广公司有哪些潜山ip锁定网络推广哪家好江干区网络推广抚顺竞价网络推广网络推广 sem竞价广元网络推广多少钱房地产公司的网络推广大同网络推广电话青铜峡农产品网络推广价格网络推广类岗位桐乡律师网络推广网络平台推广推推云速捷公认朵姿兰网络推广网络科技公司app推广行唐网络推广传媒公司餐饮行业网络推广岗位职责海南网络推广公司推荐有什么比较好的网络推广方式做网络推广和营销丰南路面再生机网络推广电话吐槽网络推广宝安品牌网络推广外包公司江西seo网络推广工具作用红星美凯龙网络营销推广阿图什网络推广报价石家庄网络推广推荐设想科技万山特区网络推广公司越秀区网络推广优化多少钱漯河机械网络推广排名平凉网络推广计划方案招生培训网络推广网络推广外包收录高网络推广加班多吗海鲜的网络营销推广代理武隆区网络推广案例快手网络推广情感口碑推荐网络推广陌拜开场白返利商城怎么做网络推广宝鸡网络推广推荐美容店怎么推广网络专注网络推广意义西宁网络推广顾问东莞免费网络推广鬼泣5的网络营销推广代理做拼多多店铺网络推广员难吗网络推广业务员工资高吗曲靖爱妮网络科技推广什么游戏网络推广明确每一阶段目标山东谷歌网络推广原州区服务业网络推广模式闲鱼推广引流认浩恩网络询东营网络运营推广疏通网络推广扬州手机端网络推广哪家好铁门关网络推广软件风机网络推广价格对比小区里网络棋牌推广网络彩票广告推广技巧济南网络推广公司都选卓商网络网络推广专员有发展吗江西装配式网络推广包括哪些赤水产品网络推广渠道陇南网络推广赛偶时代网络推广acp游戏网络推广什么工作网络推广吧就择火1星惠B2B网络推广方案步骤江西农产品网络推广的调查问卷云南一站式网络推广锐艺网络找兼职推广网络品牌的塑造和推广PPT途牛旅游网的网络推广策略山西省网络推广服务绥芬河网络推广排名晋中网络推广趋势南开区网络广告推广襄阳网络营销推广报价电销网络推广这份工作好么禄劝网络推广方案保定google网络推广云南龙岗网络推广阿城区产品网络推广人工神经网络推广优化沈阳万词霸屏网络推广公司重庆巫溪网络推广滨州运营网络推广好处旅游销售好还是网络推广好厦门讯豪网络推广有限公司宿州萧县网络推广潍坊商机互联询 网络推广天猫的网络推广体系图五中网络推广方式西安的网络推广的招聘信息广州市网络推广专员天猫企业网络推广方法网络推广专员的要求社交推广广告网络外贸公司站设计推广推荐苏州久远网络网络推广 书籍柳州市网络推广加盟安阳app网络推广公司河源好口碑网络推广敦煌律师网络推广产品网络推广1联系火星下拉新品牌网络营销推广策略有哪些知青网络推广工作室济南百度推广公司卓商网络可以非爆款网络运营推广系统知乎网络推广营销思维山西试验机网络推广阳泉商超加盟网络推广盐亭网络推广来电咨询网络推广超快庆阳网络推广格式网络游戏推广公司哪个好湛江网络推广价格30转行做网络推广专员6网络推广平台咨询t火15星网络推广运营绩效考核网络软文推广平台信任 稿件吧金溪网络获客营销推广网络推广没效果如何退款长沙竞价网络推广品牌推广公司 即来布马网络网络源头推广香港网络推广咨询手表软文网络推广方案网络如何推广到农村网络推广软件定制开发有哪些无锡正规网络推广外包报价佛像网络推广脑白金的网络推广案例网络推广主要工具璧山区网络推广成本阳春网络推广服务桐乡网络推广团队都匀网络宣传推广网络雇人推广多少钱清涧县网络推广外贸推广叫网络推广吗沈阳免费建站网络推广网络推广操作方法网络推广图片朋友圈网络推广软件定制开发有哪些网络推广试卷及答案南沙网络推广无锡产品网络推广平台网络推广技巧之服务式主动专业网络营销推广哪家便宜网络品牌化推广策云浮信息化网络推广方法邛崃正规网络推广报价表济源首页排名快的网络推广厂家南乐县网络推广项目威海网站网络推广联系人益阳市网络推广公司北京抖音网络推广用户体验无经验应聘网络推广汽车怎样做网络推广网络推广外包就选全网天下网络推广平台怎么盈利襄樊网络推广爱用复仇者下拉南昌网络推广排行辉县网络推广平台六安国外网络推广贺兰营销网络推广概况佳合网络推广丰胸广告网络推广多少钱南海网络推广排名

合作伙伴

坪山网站建设公司

龙岗网络公司
深圳网站优化
龙岗网站建设
坪山网站建设
百度标王推广
天下网标王
SEO优化按天计费
SEO按天计费系统