分布式爬虫的集中管理系统技术方案

技术编号:27501027 阅读:24 留言:0更新日期:2021-03-02 18:25
本发明专利技术实施例公开了一种分布式爬虫的集中管理系统,其中,该分布式爬虫的集中管理系统包括主机服务器和与该主机服务器通信的多台从机服务器,上述主机服务器和从机服务器使用Scrapy框架进行布局,且所述scrapy框架使用redis队列进行URL的管理。本发明专利技术通过采用分布式爬虫来进行数据爬取并对分布式爬虫通过管理平台进行管理,不仅实现了对爬虫任务的集中管理,还节省了人力资源,完善了对爬虫任务的管理。管理。管理。

【技术实现步骤摘要】
分布式爬虫的集中管理系统


[0001]本专利技术涉及互联网
,尤其涉及一种分布式爬虫的集中管理系统。

技术介绍

[0002]随着现代科技的飞速发展,信息化、数字化时代的展开,互联网俨然成为了当今社会信息的最大载体。为了能够在浩瀚的信息海洋中精确地查找出用户所需要的信息,搜索引擎技术应运而生,而作为这一技术的重要组成部分——网络爬虫,它直接影响了搜索引擎的质量、大数据分析的准确性、模型培养的完善等相关需要数据基础的工作的完成效果。因此保证爬虫的高效性、准确性、速度以及如何管理多个爬虫任务等方面是目前爬虫的技术要点。
[0003]目前,爬虫任务的数量较多,如果通过人工进行管理,不仅会浪费大量的人力资源,而且无法做到集中精准,因此目前对爬虫任务的管理还需完善。

技术实现思路

[0004]基于此,有必要针对上述问题,提出了一种分布式爬虫的集中管理系统,用于实现对分布式爬虫任务的集中管理。
[0005]在第一方面,本专利技术实施例提供一种分布式爬虫的集中管理系统,所述集中管理系统包括主机服务器和与所述主机服务器通信的多台从机服务器,所述主机服务器和所述从机服务器使用Scrapy框架进行布局,且所述scrapy框架使用redis 队列进行统一资源定位符URL的管理;
[0006]其中,所述scrapy框架包含引擎、调度器、下载器、爬虫、管道以及中间件;
[0007]所述redis队列、所述调度器、所述引擎及所述管道布局在所述主机服务器,所述下载器、所述爬虫及所述中间件布局在所述从机服务器上;
[0008]所述从机服务器用于向所述主机服务器发送request;
[0009]所述主机服务器用于基于所述request分配对应的URL,并向所述从机服务器反馈包含所述URL的request;
[0010]所述从机服务器还用于根据所述包含URL的request进行解析及数据提取,并将提取的数据存储到预设的数据库中。
[0011]可选的,所述Scrapy框架与Django对接。
[0012]可选的,所述主机服务器中设置有爬虫,所述主机服务器调用所述爬虫从网络获取URL,并进行去重处理,将去重之后的URL按照优先级添加至所述redis 队列。
[0013]可选的,所述从机服务器还用于根据所述包含URL的request进行解析及数据提取,并将提取的数据存储到预设的数据库中,包括:
[0014]所述从机服务器具体用于从所述包含URL的request中提取URL,并由所述下载器下载所述URL对应的页面,通过所述爬虫按照预设的匹配规则对所述页面进行解析及数据提取,并将提取的数据发送给所述主机服务器中的管道,所述管道则用于将所述提取的数
据存储至所述预设的数据库中。
[0015]可选的,所述从机服务器采用多线程的方式对所述页面进行解析及数据提取。
[0016]可选的,所述多线程的数量由CONCURRENT_REQUESTS模块确定。
[0017]可选的,所述从机服务器中的爬虫继承爬虫功能及RedisMixin,所述 RedisMixin用于从所述包含URL的request中提取URL。
[0018]可选的,继承所述爬虫功能时,调用steupsetup_redis函数,所述setup_redis 函数用于连接redis队列。
[0019]可选的,当所述从机服务器中的爬虫处于空闲状态时,调用spider_idle函数,所述spider_idle函数用于调用schedule_next_request函数,以使得所述爬虫处于活着状态,且抛出DontCloseSpider异常。
[0020]可选的,当所述从机服务器中的爬虫解析到数据时,调用item_scraped函数,所述item_scraped函数用于调用schedule_next_request函数,获取下一个request。
[0021]采用本专利技术实施例,具有如下有益效果:
[0022]本专利技术实施例公开了一种分布式爬虫的集中管理系统,其中集中管理系统包括主机服务器和与所述主机服务器通信的多台从机服务器,所述主机服务器和所述从机服务器使用Scrapy框架进行布局,且所述scrapy框架使用redis队列进行统一资源定位符URL的管理,其中,从机服务器用于向主机服务器发送request;主机服务器用于基于request分配对应的URL,并向所述从机服务器反馈包含该 URL的request,从机服务器还用于根据包含URL的request进行解析及数据提取,并将提取的数据存储到预设的数据库中。通过本专利技术采用分布式爬虫来进行数据爬取并对分布式爬虫通过管理系统进行管理,不仅实现了对爬虫任务的集中管理,还节省了人力资源,完善了对爬虫任务的管理。
附图说明
[0023]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024]其中:
[0025]图1为本专利技术实施例中分布式爬虫的集中管理系统的框架示意图;
[0026]图2为本专利技术图1所示的实施例中的分布式爬虫的集中管理系统的示意图;
[0027]图3为本专利技术实施例中分布式爬虫的集中管理系统的主机服务器与从机服务器交互式实现方式示意图;
[0028]图4为本专利技术实施例中分布式爬虫的集中管理系统的页面解析的多线程开启流程图;
[0029]图5为本专利技术实施例中分布式爬虫的集中管理系统的功能模块示意图。
具体实施方式
[0030]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于
本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0031]请参阅图1及图2,图1为本专利技术实施例中分布式爬虫的集中管理系统的框架示意图,图2为本专利技术图1所示的实施例中的分布式爬虫的集中管理系统的示意图。
[0032]本专利技术实施例中,分布式爬虫集中管理系统包括主机服务器(Master)和与主机服务器通信的多台从机服务器(Slave),如图2所示,其中,主机表示的是主机服务器,从机表示的是从机服务器,主机服务器和从机服务器使用如图1所示的Scrapy框架进行布局,且scrapy框架使用redis队列进行统一资源定位符 (Uniform Resource Locator,URL)的管理;
[0033]其中,如图1所示,scrapy框架包含引擎(Scrapy Egine)、调度器(Scheduler)、下载器(Downloader)、爬虫(Speders)、管道(item Pipeline)以及本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式爬虫的集中管理系统,其特征在于,所述集中管理系统包括主机服务器和与所述主机服务器通信的多台从机服务器,所述主机服务器和所述从机服务器使用Scrapy框架进行布局,且所述scrapy框架使用redis队列进行统一资源定位符URL的管理;其中,所述scrapy框架包含引擎、调度器、下载器、爬虫、管道以及中间件;所述redis队列、所述调度器、所述引擎及所述管道布局在所述主机服务器,所述下载器、所述爬虫及所述中间件布局在所述从机服务器上;所述从机服务器用于向所述主机服务器发送request;所述主机服务器用于基于所述request分配对应的URL,并向所述从机服务器反馈包含所述URL的request;所述从机服务器还用于根据所述包含URL的request进行解析及数据提取,并将提取的数据存储到预设的数据库中。2.根据权利要求1所述一种分布式爬虫的集中管理系统,其特征在于,所述Scrapy框架与Django对接。3.根据权利要求1所述一种分布式爬虫的集中管理系统,其特征在于,所述主机服务器中设置有爬虫,所述主机服务器调用所述爬虫从网络获取URL,并进行去重处理,将去重之后的URL按照优先级添加至所述redis队列。4.根据权利要求1所述一种分布式爬虫的集中管理系统,其特征在于,所述从机服务器还用于根据所述包含URL的request进行解析及数据提取,并将提取的数据存储到预设的数据库中,包括:所述从机服务器具体用于从所述包含URL的request中提取URL,并由所述下载器下载所述URL对应的页面,通过所述爬虫...

【专利技术属性】
技术研发人员:钟通罗平
申请(专利权)人:深圳市宝视佳科技有限公司
类型:发明
国别省市:

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

1