System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于flink的高效率分布式爬虫方法及装置制造方法及图纸_技高网

一种基于flink的高效率分布式爬虫方法及装置制造方法及图纸

技术编号:39940298 阅读:15 留言:0更新日期:2024-01-08 22:30
本发明专利技术涉及爬虫领域,提供了一种基于flink的高效率分布式爬虫方法及装置。解决现有单层次爬虫方案中存在的数据重复下载和处理问题,同时解决数据分类和处理的智能性不足的问题。主要方案包括步骤1初始化爬虫系统,初始化一个基于Flink的由多个爬虫节点组成的分布式爬虫系统,进行分布式爬虫;步骤2、初始化数据库存储系统,步骤3:判断是否为商品url,步骤4:处理商品url,步骤5:数据处理迭代,完成处理。

【技术实现步骤摘要】

本专利技术涉及爬虫领域,提供了一种基于flink的高效率分布式爬虫方法及装置


技术介绍

1、在当前的信息获取和处理领域,网络爬虫技术已经被广泛应用于从互联网上收集数据。爬虫程序能够按照指定的规则,自动遍历网页并提取有用的信息,从而满足数据收集和分析的需求。此外,分布式数据处理技术,如apache flink,已被引入以加速大规模数据的处理和分析。

2、目前,网络爬虫和数据处理已经形成一系列成熟的技术和解决方案,用于从网页中提取信息和对数据进行处理。分布式处理框架如flink提供了高效的数据处理和分析能力。

3、现有技术方案:

4、针对本申请提案所述的分布式爬虫技术,现有技术中比较接近的技术方案是采用python语言编写的scrapy框架,其基于twisted网络库开发,提供了丰富的爬虫组件和功能,支持用户自定义扩展。与本申请提案相比,scrapy框架主要采用单机爬取,容易爬取大量的重复数据,效率也不足以应对大数据时代的发展。

5、现有技术方案的缺点:

6、现有的网络爬虫存在一些缺点。首先,对于多层级的数据获取,现有方案可能需要多次爬取同一个页面,导致数据重复下载和处理。其次,现有爬虫可能难以智能地识别数据类型,例如区分商品链接和其他类型链接,从而无法高效地进行数据分类和处理。效率低下:需要多次爬取同一个页面,导致效率降低。


技术实现思路

1、本专利技术的目的旨在解决现有单层次爬虫方案中存在的数据重复下载和处理问题,同时解决数据分类和处理的智能性不足的问题。通过将flink技术引入爬虫系统,实现多层级数据处理和智能分类,本申请提案旨在提升数据收集和处理的效率、准确性和自动化程度。

2、因为本专利技术采用上述技术方案,因此具备以下有益效果:

3、一种基于flink的高效率分布式爬虫方法,包括以下步骤:

4、步骤1:初始化爬虫系统,初始化一个基于flink的由多个爬虫节点组成的分布式爬虫系统,进行分布式爬虫;

5、步骤2:初始化数据库存储系统

6、2.1:初始化redis,使用字符串类型来存储url,设置键值对,用于后续判断非商品url是否已经存在,把存放非商品url的队列叫做队列r;

7、2.2:初始化elasticsearch,elasticsearch是一种分布式搜索和分析引擎,它的数据存储和传统的sql数据库有所不同。因为elasticsearch对海量数据的存储和搜索非常高效,所以用在这个需要存储海量url十分合适。在elasticsearch中创建一个索引,用于存储数据的唯一标识符url,在后面进行判断的时候,先查询elasticsearch索引,判断该商品url是否存在,把存放商品url的队列叫做队列e;

8、2.3:输入初始url,也就是手动添加一个url到队列r中,开始运行程序;

9、2.4:从队列r中取url,循环处理;

10、步骤3:判断是否为商品url

11、3.1:程序进入队列r中的一个url,并且解析到该页面中包含的每一个url,

12、3.2:使用正则表达式对3.1步骤得到的url进行判断,因为所有商品都有唯一id,页面上显示都是通过唯一id来查询展示在前端,所以商品url满足是一串数字加html这种情况的url就进入步骤4,否则再进一步判断,如果redis中存在则不处理,判断下一个url,否则加入到队列r;

13、步骤4:处理商品url

14、4.1:对步骤3处理得到的商品url进行判断,先查询elasticsearch索引,判断该url是否存在,如果存在表示已经爬取过该商品,不做处理,否则对数据进行清洗,发送到kafka;

15、4.2:把清洗完的url添加到elasticsearch索引中,即放到队列e中;

16、步骤5:数据处理迭代

17、5.1:检查队列r中是否还有url,若有,则返回步骤2.4;

18、5.2:若队列r为空,系统任务结束。

19、本专利技术还提供了一种基于flink的高效率分布式爬虫装置,包括以下步骤:

20、爬虫模块:初始化爬虫系统,初始化一个基于flink的由多个爬虫节点组成的分布式爬虫系统,进行分布式爬虫;

21、初始化模块:初始化数据库存储系统

22、2.1:初始化redis,使用字符串类型来存储url,设置键值对,用于后续判断非商品url是否已经存在,把存放非商品url的队列叫做队列r;

23、2.2:初始化elasticsearch,在elasticsearch中创建一个索引,用于存储数据的唯一标识符url,在后面进行判断的时候,先查询elasticsearch索引,判断该商品url是否存在,把存放商品url的队列叫做队列e;

24、2.3:输入初始url,也就是手动添加一个url到队列r中,开始运行程序;

25、2.4:从队列r中取url,循环处理;

26、商品url判断模块:判断是否为商品url

27、3.1:程序进入队列r中的一个url,并且解析到该页面中包含的每一个url,

28、3.2:使用正则表达式对3.1步骤得到的url进行判断,因为所有商品都有唯一id,页面上显示都是通过唯一id来查询展示在前端,所以商品url满足是一串数字加html这种情况的url就进入步骤4,否则再进一步判断,如果redis中存在则不处理,判断下一个url,否则加入到队列r;

29、url处理模块:处理商品url

30、4.1:对步骤3处理得到的商品url进行判断,先查询elasticsearch索引,判断该url是否存在,如果存在表示已经爬取过该商品,不做处理,否则对数据进行清洗,发送到kafka;

31、4.2:把清洗完的url添加到elasticsearch索引中,即放到队列e中;

32、数据处理迭代模块:

33、5.1:检查队列r中是否还有url,若有,则返回步骤2.4;

34、5.2:若队列r为空,系统任务结束。

35、本专利技术还提供了一种存储介质,处理器在执行存储介质存储的程序时,实现所述的一种基于flink的高效率分布式爬虫方法。

36、因为本专利技术采用上述技术手段,因此具备以下有益效果:

37、基于flink的分布式处理:与传统的单层次爬虫不同,本技术提案采用基于flink的分布式处理框架,充分利用多个爬虫节点并行处理数据,提高了数据处理的效率和速度。

38、分类和处理:本技术提案引入对解析到的链接进行分类,能够准确地识别商品链接和非商品链接,从而避免了传统爬虫中数据冗余下载的问题,同时提升了数据的分类和处理质量。

39、实时性和动态性:采用分布式架构和队本文档来自技高网...

【技术保护点】

1.一种基于flink的高效率分布式爬虫方法,其特征在于,包括以下步骤:

2.一种基于flink的高效率分布式爬虫装置,其特征在于,包括以下步骤:

3.一种存储介质,其特征在于,处理器在执行存储介质存储的程序时,实现如权利要求1所述的一种基于flink的高效率分布式爬虫方法。

【技术特征摘要】

1.一种基于flink的高效率分布式爬虫方法,其特征在于,包括以下步骤:

2.一种基于flink的高效率分布式爬虫装置,其特征在于,包括以...

【专利技术属性】
技术研发人员:熊绪海张永宏付立军展鹏常志军刘雨江
申请(专利权)人:中科智禾数字科技北京有限公司
类型:发明
国别省市:

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

1