一种基于爬虫网络框架的数据采集储存系统及其方法技术方案

技术编号:32827129 阅读:14 留言:0更新日期:2022-03-26 20:31
本发明专利技术公开了一种基于爬虫网络框架的数据采集储存系统及其方法,包括爬虫引擎、调度器、下载器、解析器、存储管道,调度器、下载器、解析器分别与爬虫引擎信号连接;通道包括项目管道、业务逻辑模块;业务逻辑模块在项目管道中分拣结构化数据和非结构数据,并将不同类别的数据存储至不用的存储模块中;调度器与下载器中间设置有去重模块,去重模块采用MD5算法对URL去重。现有技术去重模块设置的位置一般在存储通道位置,其去重时间长,爬取网页速度慢,本发明专利技术设置在调度器与下载器数据传递之间,节省了去重时间;另外,本发明专利技术存储通道具备MongoDB集群技术,结构化数据和非结构化数据最后统一整合至MongoDB集群中,具备通用性。具备通用性。具备通用性。

【技术实现步骤摘要】
一种基于爬虫网络框架的数据采集储存系统及其方法


[0001]本专利技术涉及数据采集存储领域,尤其涉一种基于爬虫网络框架的数据采集储存系统及其方法。

技术介绍

[0002]随着大数据时代的到来,人们对数据的需求与日俱增。为了对万维网上的数据进行特定的搜索,各种搜索引擎也是层出不穷,搜索引擎在数据搜集中站着越来越重要的地位,但正是因为信息的高速发展,用户对信息的搜索也是越来越严苛,如今的搜索引擎也越来越难以满足用户的需求。因此,互联网数据的搜集成为当代科技必不可少的技术之一,网络爬虫技术应运而生。网络爬虫技术能够实现互联网信息的自动化搜集,并将相关信息存入数据库内部。但目前传统网络爬虫主要面向单个服务或应用,存在通用性差、维护困难等问题;同时,随着爬虫系统规模的扩大和存储数据量级的猛增,导致爬虫系统采集效率低、稳定性差、无法存储和分析大量非结构化数据等问题,不能满足当前大数据时代下的数据需求。因此,如何高效稳定地完成网络数据的持续采集和存储,已成为非常值得研究的问题。

技术实现思路

[0003]本专利技术为解决上述问题,提供一种基于爬虫网络框架的数据采集储存系统,包括爬虫引擎、调度器、下载器、解析器、存储管道,所述调度器、所述下载器、所述解析器分别与所述爬虫引擎信号连接;所述通道包括项目管道、业务逻辑模块;所述业务逻辑模块在所述项目管道中分拣结构化数据和非结构数据,并将不同类别的数据存储至不用的存储模块中;所述调度器与所述下载器中间设置有去重模块,所述去重模块采用MD5算法对URL去重。
[0004]优选的,所述存储模块包括MongoDB集群和MySQL模块;
[0005]所述业务逻辑模块将结构化数据分拣至所述MySQL模块中;
[0006]所述业务逻辑模块将非结构化数据分拣至所述MongoDB集群中。
[0007]优选的,所述调度器与所述爬虫引擎之间设置有调度器中间件,所述下载器与所述爬虫引擎之间设置有下载器中间件,所述解析器与所述爬虫引擎之间设置有解析器中间件。
[0008]优选的,所述下载器在request回调函数中使用所述解析器完成网页内容的下载和解析。
[0009]本专利技术另一方面提供一种基于爬虫网络框架的数据采集储存方法,包括如下步骤:
[0010]S1:爬虫引擎将待爬取URL队列中的目标URL读取至调度器;
[0011]S2:所述调度器对目标URL发起访问请求,并将发送的请求交送至下载器;
[0012]S3:所述下载器响应所述调度器请求完成网页内容下载;
[0013]S4:在回调函数中,所述解析器完成所述网页内容的解析;

右侧”“上部的”“左”“右”等,以描述本实施例中部件或零件的方位关系,但这些空间相对术语并不对技术特征在实际应用中的方位构成限制。
[0033]如图1至图2所示,提供一种基于爬虫网络框架的数据采集储存系统,包括爬虫引擎、调度器、下载器、解析器、存储管道,所述调度器、所述下载器、所述解析器分别与所述爬虫引擎信号连接;所述通道包括项目管道、业务逻辑模块;所述业务逻辑模块在所述项目管道中分拣结构化数据和非结构数据,并将不同类别的数据存储至不用的存储模块中;所述调度器与所述下载器中间设置有去重模块,所述去重模块采用MD5算法对URL去重。
[0034]爬虫引擎内包括redis数据库,redis数据库有待爬取的URL队列。
[0035]调度器通过调度器中间件读取待爬取的URL队列中的目标URL队列。调度器对目标URL发起访问请求,将发送的请求交给下载器。其中,调度器不仅接受来自爬虫引擎的请求,也接受来自解析器的请求。
[0036]下载器完成根据请求完成网页内容的下载,在回调函数中,解析器将下载器下载的内容进行解析,然后,经由解析器中间件,提取解析后的数据被抽取存入到存储管道中的项目管道中,存储管道中的业务逻辑模块对数据进行分拣。与此同时,解析后的数据中的新请求重新发送至调度器,爬虫引擎的请求也发送至调度器,调度器再一次发起访问请求,但是,调度器发起的请求被去重模块通过MD5算法进行UR队列L去重,对与之前同样的请求(之前的范围是指:在本次爬虫框架运行的循环中,例如,A目标队列第一次经过调度器,在调度器第三次工作时,A目标再一次出现在调度器的请求中,那么A目标与之前的请求重复,需要被去除)进行去除。
[0037]本系统的具体结构是基于现有技术的爬虫网络框架,结合新的去重模块的位置设置方式、存储管道应用MongoDB集群技术形成新的爬虫网络框架的数据采集储存系统。
[0038]优选的一种实施方式,所述存储模块包括MongoDB集群和MySQL模块;所述业务逻辑模块将结构化数据分拣至所述块中;所述业务逻辑模块将非结构化数据分拣至所述MongoDB集群中。
[0039]优选的一种实施方式,所述调度器与所述爬虫引擎之间设置有调度器中间件,所述下载器与所述爬虫引擎之间设置有下载器中间件,所述解析器与所述爬虫引擎之间设置有解析器中间件。
[0040]优选的,所述下载器在request回调函数中使用所述解析器完成网页内容的下载和解析。
[0041]如图3,本专利技术另一方面提供一种基于爬虫网络框架的数据采集储存方法,包括如下步骤:
[0042]S1:爬虫引擎将待爬取URL队列中的目标URL读取至调度器;
[0043]S2:所述调度器对目标URL发起访问请求,并将发送的请求交送至下载器;
[0044]S3:所述下载器响应所述调度器请求完成网页内容下载;
[0045]S4:在回调函数中,所述解析器完成所述网页内容的解析;
[0046]S5:所述存储通道抽取并存储所述步骤S4中解析后的数据,与此同时,所述解析器的新请求发送至调度器中,所述调度器根据新请求在所述爬虫引擎中重新提取URL,所述去重模块通过MD5算法对重新提取的URL进行去重,去重后的URL队列重复所述步骤S2至S5;
[0047]直至触发网络爬虫的终止爬取条件时,结束爬取过程。
[0048]现有技术去重模块设置的位置一般在存储通道位置,其去重时间长,爬取网页速度慢,本专利技术设置在调度器与下载器数据传递之间,节省了去重时间。
[0049]其中,所述现有技术去重模块设置的位置一般在存储通道位置,其去重时间长,爬取网页速度慢,本专利技术设置在调度器与下载器数据传递之间,节省了去重时间;存储通道包括项目管道和业务逻辑模块,所述业务逻辑模块在所述项目管道中提取结构化数据或非结构数据。所述存储通道还包括MongoDB集群和MySQL模块;所述业务逻辑模块将结构化数据分拣至所述MySQL模块中;所述业务逻辑模块将非结构化数据分拣至所述MongoDB集群中。
[0050]所述MongoDB集群包括至少一个路由服务器、至少一个配置服务器、至少一个分片主节点、至少一个分片仲裁、至少一个复制集。
[0051]MongoDB集群虽为现有技术,但是运用到本爬虫网络框架中,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于爬虫网络框架的数据采集储存系统,其特征在于,包括爬虫引擎、调度器、下载器、解析器、存储管道,所述调度器、所述下载器、所述解析器分别与所述爬虫引擎信号连接;所述通道包括项目管道、业务逻辑模块;所述业务逻辑模块在所述项目管道中分拣结构化数据和非结构数据,并将不同类别的数据存储至不用的存储模块中;所述调度器与所述下载器中间设置有去重模块,所述去重模块采用MD5算法对URL去重。2.根据权利要求1所述的一种基于爬虫网络框架的数据采集储存系统,其特征在于,所述存储模块包括MongoDB集群和MySQL模块;所述业务逻辑模块将结构化数据分拣至所述MySQL模块中;所述业务逻辑模块将非结构化数据分拣至所述MongoDB集群中。3.根据权利要求1所述的一种基于爬虫网络框架的数据采集储存系统,其特征在于,所述调度器与所述爬虫引擎之间设置有调度器中间件,所述下载器与所述爬虫引擎之间设置有下载器中间件,所述解析器与所述爬虫引擎之间设置有解析器中间件。4.根据权利要求1所述的一种基于爬虫网络框架的数据采集储存系统,其特征在于,所述下载器在request回调函数中使用所述解析器完成网页内容的下载和解析。5.一种基于爬虫网络框架的数据采集储存方法,其特征在于,包括如下步骤:S1:爬虫引擎将待爬取URL队列中的目标URL读取至调度器;S2:所述调度器对目标URL发起访问请求,并将发送的请求交送至下载器;S3...

【专利技术属性】
技术研发人员:周毅李威王鸥宁亮何金程蕾柳璐孙海波张磊张东芳
申请(专利权)人:国家电网有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1