基于微服务架构的分布式网络爬虫数据提取系统及方法技术方案

技术编号:24353768 阅读:126 留言:0更新日期:2020-06-03 02:08
本发明专利技术提出了一种基于微服务架构的分布式网络爬虫数据提取系统及方法,通过当前业界比较前沿的微服务架构理念,将整个爬虫系统拆分成数据提取模块,请求预处理模块,数据分布式存储模块,下载模块等,基于这套系统和云架构,用户可以实现分布式爬虫系统的快速部署,支持水平扩展和容器化部署,可以大大提升爬虫系统的可拓展性及快速部署的能力。

Distributed crawler data extraction system and method based on microservice architecture

【技术实现步骤摘要】
基于微服务架构的分布式网络爬虫数据提取系统及方法
本专利技术涉及一种基于微服务架构的分布式网络爬虫数据提取系统及方法,属于大数据分布

技术介绍
随着网络在人们生活中的日益普及,也催生出了越来越多的新技术,而网络爬虫就是其中一项运用相当广泛的技术,据统计,当今网络世界中的将近80%的流量来自于各大互联网公司或者个人开发者所开发的网络爬虫。随着网页技术的日益发展,互联网上的数据也随之呈现出爆炸式的增长速度,与此同时,人们对网页信息提取的要求越来越高,对信息抓取的专业性与通用性的要求也越来越高,从而催生出了种类繁多的爬虫系统,当前的爬虫系统根据其体系结构的不同可以区分成通用抓取型爬虫,特定领域垂直爬虫,深度URL(uniformresourcelocator,统一资源定位系统)抓取爬虫等不同类型。网络爬虫的主要原理是通过给定的URL链接去模拟用户访问页面,将被访问页面的数据下载到本地,并且根据指定的提取策略在所爬取道德页面信息中获取所需的关键信息,并对获取到的URL链接进行深度爬取。随着软件开发架构的日益演进,人们提出了一种全新的软件开发架构,这种理念被称为微服务开发理念,通常而言,微服务是一种软件架构的思想和风格,其核心理念是将原本的一站式应用依据其不同功能划分成一组小的服务,从而彻底的实现跨耦合,每个服务运行在自己的进程中,服务与服务之间通过一些轻量级的通信方式进行相互通信,甚至于各个服务可以使用不同的语言进行开发,而对整个微服务系统就可以通过一个完善的监控平台去实现全链路监控,尤其是在开发一个分布式爬虫系统时,可以将整个爬虫系统依据其各个子模块的功能不同去划分出不同的微服务模块,例如请求调度微服务,页面下载微服务,请求预处理微服务等。同时,通过在各个服务之间采用的熔断措施,避免出现传统软件架构中某部分业务逻辑崩溃而导致整个系统不可用的场景,从而大大提高系统的可靠性。目前传统的网络爬虫系统,功能模块划分不清晰,功能与功能之间耦合度较高,且面对大数据量时无法具备高效的数据吞吐与爬取效率并重。功能与功能之间不存在类似微服务模块之间的隔离划分与系统熔断处理,从而导致存在若一部分功能逻辑崩溃后导致整个系统雪崩的可能性。
技术实现思路
本专利技术所要解决的技术问题是,克服现有技术的不足而提供一种大数据场景下基于微服务架构的分布式网络爬虫数据提取系统及方法,针对目前的传统网络爬虫系统,本专利技术一方面通过微服务架构的解耦可以使得功能模块的划分更清晰,利用微服务架构相关技术可以避免一部分功能逻辑崩溃从而导致的系统整体雪崩,另一方面结合了消息队列和文档数据库的使用,可以大大提升爬虫系统的整体吞吐性能。本专利技术提供一种基于微服务架构的分布式网络爬虫数据提取系统,包括数据提取模块、请求预处理模块、数据分布式存储模块和下载模块;数据提取模块,用于将下载下来的页面信息根据用户指定的数据提取规则从中提取出指定信息;请求预处理模块,用于通过负载均衡算法将爬虫任务请求投递至消息队列中;数据分布式存储模块,用于将解析后的页面数据存放至MongoDB这样的文档型数据库中;下载模块,用于从消息队列中取出相应的爬虫任务,从数据池中取出相应数据组装成完整的爬虫请求,通过模块中的多线程下载器开启下载,并将下载得到的页面信息写入消息队列中。本专利技术通过微服务与爬虫系统的相结合,开发出一个高性能,易监控,高可靠性的分布式爬虫系统。该系统通过当前业界比较前沿的微服务架构理念,将整个爬虫系统拆分成数据提取模块,请求预处理模块,数据分布式存储模块,页面解析模块等,基于这套系统和云架构,用户可以实现分布式爬虫系统的快速部署,支持水平扩展和容器化部署,可以大大提升爬虫系统的可拓展性及快速部署的能力。本专利技术的整个系统中各个模块彼此之间互相隔离,模块与模块之间通过HTTP(hypertexttransferprotocol,超文本传输协议)或者RPC(RemoteProcedureCall,远程过程调用)通信,并且各个模块之间基于springcloudhystrix做了服务熔断处理,一但有模块发生奔溃,因为熔断处理中存在的断路器模型,可以保证其他模块不发生雪崩式服务失败。本专利技术还提供一种基于微服务架构的分布式网格爬虫数据提取方法,包括以下步骤:S01、用户在可视化界面提交爬虫任务数据;S02、请求预处理模块采用负载均衡算法将爬虫任务信息投递至消息队列;S03、将页面提取规则以及步骤S02中生成的全局唯一ID作为缓存对象缓存至内存数据库中;S04、下载模块根据任务信息抓取页面数据;S05、将下载模块抓取到的页面信息写入消息队列中,同时更新爬虫任务状态;S06、页面解析模块从消息队列中提取页面信息,然后使用jsoup(是一款Java的HTML解析器)进行解析,并将解析后的数据存储到数据库中;S07、爬虫控制台可视化数据展示。本专利技术进一步优化的技术方案如下:在步骤S01中,用户从可视化界面上输入指定爬取的URL路径,同时用户确定该类型页面所要提取的字段属性及提取规则,提取规则支持CSS和XPath两种主流提取规则,指定爬取的URL路径以及该类型页面所要提取的字段属性和提取规则等组成爬虫任务数据。在步骤S02中,请求预处理模块获取对应的请求体信息,并在请求预处理模块对该请求进行过滤,然后将URL路径信息以及生成的一个全局唯一ID写入消息队列,依赖负载均衡算法将请求分散到不同机器上。本专利技术使用消息队列,大大提升了整体系统的吞吐量,各个模块之间做到了解耦,彼此作为生产端生产数据和消费端消费数据,而消息队列则作为存放数据的载体。在步骤S04中,下载模块作为消费端从消息队列中不断获取到爬取页面信息,并根据该信息的URL类型从cookie池和user-agent池获取到对应的数据(即下载模块从数据池中获取user-agent和cookie值),user-agent值和cookie值同URL组合成完整的请求头数据,在下载模块中内置了一个线程池,可以开启多线程下载,最大程度上利用机器资源。本专利技术在应对网站反爬的措施场景下,通过维护一个cookie池和user-agent池,通过轮训算法,从池中取出数据组合至请求头,从而加大爬取的成功率。在步骤S06中,页面解析模块从消息队列中获取步骤S04抓取到的页面信息,并且页面解析模块从Redis(键值对类型数据库)中根据ID取出该页面对应的数据提取规则(即从缓存中获取页面信息解析规则),使用jsoup(HTML文件解析工具)进行解析,并将解析后的数据储到MongoDB这样的文档型数据库中。这样,在爬虫系统中会存在海量爬取下来的页面数据信息,针对这类文档型信息,采用了业界开源的MongoDB数据库存储。在步骤S07中,用户在可视化界面上看到各自爬虫任务的运行状况和数据提取结果。本专利技术采用以上技术方案与现有技术相比,具有以下技术效果:1.针对目前的传统网络爬虫系统,本专利技术通过微服务架构的解耦可以使得功本文档来自技高网
...

【技术保护点】
1.一种基于微服务架构的分布式网络爬虫数据提取系统,其特征在于:包括数据提取模块、请求预处理模块、数据分布式存储模块和下载模块;数据提取模块,用于将下载下来的页面信息根据用户指定的数据提取规则从中提取出指定信息;请求预处理模块,用于通过负载均衡算法将爬虫任务请求投递至消息队列中;数据分布式存储模块,用于将解析后的页面数据存放至数据库中;下载模块,用于从消息队列中取出相应的爬虫任务,从数据池中取出相应数据组装成完整的爬虫请求,通过模块中的多线程下载器开启下载,并将下载得到的页面信息写入消息队列中。/n

【技术特征摘要】
1.一种基于微服务架构的分布式网络爬虫数据提取系统,其特征在于:包括数据提取模块、请求预处理模块、数据分布式存储模块和下载模块;数据提取模块,用于将下载下来的页面信息根据用户指定的数据提取规则从中提取出指定信息;请求预处理模块,用于通过负载均衡算法将爬虫任务请求投递至消息队列中;数据分布式存储模块,用于将解析后的页面数据存放至数据库中;下载模块,用于从消息队列中取出相应的爬虫任务,从数据池中取出相应数据组装成完整的爬虫请求,通过模块中的多线程下载器开启下载,并将下载得到的页面信息写入消息队列中。


2.一种基于微服务架构的分布式网格爬虫数据提取方法,其特征在于,包括以下步骤:
S01、用户在可视化界面提交爬虫任务数据;
S02、请求预处理模块采用负载均衡算法将爬虫任务信息投递至消息队列;
S03、将页面提取规则以及步骤S02中生成的全局唯一ID作为缓存对象缓存至内存数据库中;
S04、下载模块根据任务信息抓取页面数据;
S05、将下载模块抓取到的页面信息写入消息队列中,同时更新爬虫任务状态;
S06、页面解析模块从消息队列中提取页面信息,然后使用jsoup进行解析,并将解析后的数据存储到数据库中;
S07、爬虫控制台可视化数据展示。


3.根据权利要求2所述基于微服务架构的分布式网格爬虫数据提取方法,其特征在于,在步骤S01中,用户从可视化界面上输入指定爬取的URL路径,同时用户确定该类型页面所要提...

【专利技术属性】
技术研发人员:葛又嘉章韵
申请(专利权)人:南京邮电大学
类型:发明
国别省市:江苏;32

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

1