公开/公告号CN112528121A
专利类型发明专利
公开/公告日2021-03-19
原文格式PDF
申请/专利权人 河钢数字技术股份有限公司;
申请/专利号CN202011624214.8
申请日2020-12-31
分类号G06F16/951(20190101);G06F16/172(20190101);G06F16/182(20190101);G06F16/2458(20190101);G06F16/27(20190101);G06F40/279(20200101);
代理机构13131 石家庄知住优创知识产权代理事务所(普通合伙);
代理人林艳艳
地址 053400 河北省衡水市武邑县经济开发区宁武路98号
入库时间 2023-06-19 10:19:37
技术领域
本发明涉及数据存储和统计领域,具体涉及一种基于分布式存储的爬虫爬取数据统计方法及系统。
背景技术
现在是互联网高速发展的时代,互联网中蕴含着海量的信息,但是如何快速的获取我们想要的数据是一个巨大的挑战。传统的搜索引擎网站是获取数据的一个有效的方式,但是它们也存在着各种的限制和局限性,因为它们的数据没有针对性,无法专注到某一方面的数据搜索,如何获得某方面或者某类型的数据需要专业的程序进行处理。
网络爬虫是搜索的一个重要组成部分,爬虫按照既定的爬取规则,自动的抓取互联网中的各种数据,进行索引。爬取的数据包括文字、图片、音频、视频、应用程序、压缩包等各种类型的数据。如何对这些数据进行结构化存储,有效的管理是一个巨大的难题。随着爬虫程序不断的运行,爬取的文本、程序、和多媒体文件在分布式存储系统爆炸式的增长,需要有效的统计和管理,从中获取有效的数据,为人们的决策提供有效的数据支撑是一个很大的难题,而传统的分布式存储没有对文件类型和大小等进行统计和分析。
发明内容
本发明要解决的技术问题是克服现有技术的不足而提供一种基于分布式存储的爬虫爬取数据统计方法及系统,以解决爬虫爬取数据时使用分布式存储统计和分析的难题。
为解决上述技术问题,本发明所采取的技术方案是:
一种基于分布式存储的爬虫爬取数据统计方法,包括以下步骤:
步骤1:将利用爬虫程序从网页中抓取的文件临时存储入Kafka中;
步骤2:对Kafka中临时存储的爬虫抓取文件进行文件类型和文件大小的统计,并将统计结果存储入Redis中;
步骤3:将统计完类型和大小的爬虫爬取文件上传到FastDFS中,并记录FastDFS返回的每一条文件的存储路径;
步骤4:对FastDFS中存储的爬虫爬取文件根据文件类型对文件进行分词,并将分词后的结构化数据存入ElasticSearch中。
进一步的,所述步骤S1中,爬虫程序从网页中抓取的文件包括文本、应用、音频和视频。
进一步的,所述步骤S2具体包括:从Kafka中逐条取出爬虫抓取的文件
进一步的,所述步骤S4中的文件分词具体包括:对于每一条文件,如果是文本数据,则对这条文本数据的内容进行分词,并保存分词结果到ElasticSearch,如果是多媒体文件,则对这条多媒体文件的文件名进行分词,并将文件名和元数据信息存储到ElasticSearch中。
一种基于分布式存储的爬虫爬取数据统计系统,包括Kafka、Redis、FastDFS、Elasticsearch、文件类型及大小统计模块和文件分词模块;
所述Kafka用于临时存储爬虫程序从网页中抓取的文件,所述文件类型及大小统计模块用于对Kafka中临时存储的文件进行文件类型和文件大小的统计,并将统计结果存储入Redis中;所述FastDFS用于存储统计完文件类型和文件大小的爬虫爬取文件,并返回每一个文件的存储路径;所述文件分词模块用于对FastDFS中的爬虫爬取文件进行分词,并将分词后的结构化数据存入ElasticSearch中。
进一步的,所述爬虫程序从网页中抓取的文件包括文本、应用、音频和视频。
进一步的,所述文件类型及大小统计模块逐条从Kafka中取出爬虫抓取文件
进一步的,所述文件分词模块对FastDFS中的爬虫爬取文件根据文件类型进行分词:对于每一条文件,如果是文本数据,则对这条文本数据的内容进行分词,并保存分词结果到ElasticSearch,如果是多媒体文件,则对这条多媒体文件的文件名进行分词,并将文件名和元数据信息存储到ElasticSearch中。
采用上述技术方案所产生的有益效果在于:
本发明基于分布式存储系统FastDFS、分布式全文搜索引擎Elasticsearch、内存式数据库Redis,提供了一种基于分布式存储的爬虫爬取数据统计方法及系统,能够对爬虫爬取的不同文件类型(纯文本、音频、视频、网页、应用程序、App等不同类型的数据)进行类型统计和大小统计,临时数据存放在Redis中,将分析结果(最终的结构化数据)存放在分布式全文搜索引擎Elasticsearch中,方便日后的检索和查阅,或是进一步的数据挖掘。
本发明解决了分布式存储系统FastDFS中无法实时查看系统数据类型和大小的问题,防止数据写满磁盘导致系统宕机,可以实时查看存储系统中文件的占比和统计,帮助使用者对整个分布式系统有个深入了解,极大的方便了用户,提升了办公效率,节约了工作时间。
附图说明
图1是本发明方法的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,本发明提供了一种基于分布式存储的爬虫爬取数据统计方法,包括以下步骤:
步骤1:将利用爬虫程序从网页中抓取的文件临时存储入Kafka中;文件类型包括文本、应用、音频和视频等各种类型。
步骤2:对Kafka中临时存储的爬虫抓取文件进行文件类型和文件大小的统计,并将统计结果存储入Redis中。
具体的,从Kafka中逐条取出爬虫抓取的文件
步骤3:将统计完类型和大小的爬虫爬取文件上传到FastDFS中,并记录FastDFS返回的每一条文件的存储路径。
步骤4:对FastDFS中存储的爬虫爬取文件根据文件类型对文件进行分词,并将分词后的结构化数据存入ElasticSearch中。
文件分词具体包括:对于每一条文件,如果是文本数据,则对这条文本数据的内容进行分词,并保存分词结果到ElasticSearch,如果是多媒体文件,则对这条多媒体文件的文件名进行分词,并将文件名和元数据信息存储到ElasticSearch中。
本发明还提供了一种基于分布式存储的爬虫爬取数据统计系统,包括分布式消息队列Kafka、非关系型数据库Redis、分布式文件系统FastDFS、分布式全文搜索引擎Elasticsearch、文件类型及大小统计模块和文件分词模块;Kafka用于临时存储爬虫程序从网页中抓取的文件,所述文件类型及大小统计模块用于对Kafka中临时存储的文件进行文件类型和文件大小的统计,并将统计结果存储入Redis中;所述FastDFS用于存储统计完文件类型和文件大小的爬虫爬取文件,并返回每一个文件的存储路径;所述文件分词模块用于对FastDFS中的爬虫爬取文件进行分词,并将分词后的结构化数据存入ElasticSearch中。
文件类型及大小统计模块逐条从Kafka中取出爬虫抓取文件
文件分词模块对FastDFS中的爬虫爬取文件根据文件类型进行分词:对于每一条文件,如果是文本数据,则对这条文本数据的内容进行分词,并保存分词结果到ElasticSearch,如果是多媒体文件,则对这条多媒体文件的文件名进行分词,并将文件名和元数据信息存储到ElasticSearch中。
本发明中采用的分布式文件系统FastDFS是一个开源的分布式文件系统,对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。本发明中采用的分布式全文搜索引擎Elasticsearch是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便,用于记录爬虫爬取数据的原始数据信息和FastDFS返回的存储源信息。
本发明用于通用爬虫爬取网页的各种数据进行文件类型归类、索引、文件大小统计。通过对结构化数据的管理,实现了爬虫数据的数据类型的有效整理和分析,从而得到有效的结果,帮助人们对各个网站的数据有更好的了解,对决策和判断提供可靠的数据来源,同时解决了分布式存储系统中而无法有效分析数据占用的问题,使得用户可以及时得到分布式中的实时存储情况,及时删除无用的数据,或者及时对系统进行扩容,防止数据爆炸,导致服务器宕机,对公司造成更严重的经济损失。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
机译: 基于注册表数据触发网页爬取的方法和系统
机译: 基于注册表数据触发网页爬取的方法和系统
机译: 基于多数据节点位置的分布式存储对象的分布式存储系统,基于位置的对象分布式存储方法以及计算机可读记录介质