当前位置: 首页 > 科技观察

基于Java的分布式爬虫

时间:2023-03-14 00:05:51 科技观察

分类分布式网络爬虫包括多个爬虫,每个爬虫需要完成类似于单个爬虫的任务,它们从互联网上下载网页,并将网页保存在本地磁盘中,从中提取URL并继续沿着这些URL抓取。由于并行爬虫需要分流下载任务,所以有可能爬虫会将自己提取的URL发送给其他爬虫。这些爬虫可能分布在同一个局域网中,也可能分散在不同的地理位置。根据爬虫分散程度的不同,分布式爬虫可以分为以下两类:1.基于局域网的分布式网络爬虫:这种分布式爬虫的所有爬虫都运行在同一个局域网中,并且各自连接其他通过高速网络。沟通。这些爬虫通过同一网络访问外部互联网和下载网页,所有网络负载都集中在它们所在局域网的出口处。由于局域网的高带宽,可以保证爬虫之间的通信效率;但是网络出口的总带宽上限是固定的,爬虫的数量会受到局域网出口带宽的限制。2、基于广域网的分布式网络爬虫:当并行爬虫的爬虫运行在不同的地理位置(或网络位置)时,我们称这种并行爬虫为分布式爬虫。比如分布式爬虫的爬虫可能位于中国、日本、美国,分别负责下载这三个地方的网页;或位于CHINANET、CERNET、CEINET,分别负责这三个网络的网页下载。分布式爬虫的优点是可以在一定程度上分散网络流量,减少网络出口的负载。如果爬虫分布在不同的地理位置(或网络位置),它们需要多长时间相互通信就成为一个值得考虑的问题。爬虫之间的通信带宽可能有限,通常需要通过Internet进行通信。大型分布式网络爬虫架构图分布式网络爬虫是一个非常复杂的系统。需要考虑很多因素。性能可以说是它最重要的指标。当然,硬件层面的资源也是必不可少的。下面是项目的整体结构,第一个版本就是基于这个方案。上层web层包括:控制台、基础权限、监控展示等,还可以根据需要进一步扩展。核心层由controller统一调度,将任务发送给worker队列中的worker进行爬取操作。各节点动态发送模块状态等信息给监控模块,由显示层统一显示。众推项目目标,今日头条开源版!基于hadoop思想的分布式网络爬虫。目前已经整合了fourinone、jeesite、webmagic,并做了进一步的改进。最后想做一个基于设计器的可动态配置的分布式爬虫系统。这是第一阶段的目标。项目现状项目目前进展情况:1.sourceer,可以访问多种数据源,接口已经定义(添加到builder包中,可以使用简单的爬虫)。2.Web架构项目(web项目上传测试成功,权限,基础框架改造,导入等已经录成视频,删除activiti,删除cms部分)。3、分布式框架研究(分布式项目分包,加点注释,测试单机单工爬虫)。4.插件集成。5、文章等各种去重方法和算法(目前已经实现了bloomfilter、指纹算法去重、simhash、分词算法(ansj))。6.分类器测试(贝叶斯,文本分类单机测试成功)。项目地址:(分布式爬虫)http://git.oschina.net/zongtui/zongtui-webcrawler(去重过滤器)https://git.oschina.net/zongtui/zongtui-filter(文本分类器)https:///git.oschina.net/zongtui/zongtui-classifier(文档目录)https://git.oschina.net/zongtui/zongtui-doc项目界面:启动jetty,还没有换皮肤。总结目前项目正在进一步完善中,希望大家多提意见!