[发明专利]分布式爬虫的集中管理系统在审
申请号: | 202011240728.3 | 申请日: | 2020-11-09 |
公开(公告)号: | CN112417242A | 公开(公告)日: | 2021-02-26 |
发明(设计)人: | 钟通;罗平 | 申请(专利权)人: | 深圳市宝视佳科技有限公司 |
主分类号: | G06F16/951 | 分类号: | G06F16/951;G06F16/955 |
代理公司: | 深圳中细软知识产权代理有限公司 44528 | 代理人: | 袁文英 |
地址: | 518000 广东省深圳市龙华新*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 爬虫 集中 管理 系统 | ||
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对应的页面,通过所述爬虫按照预设的匹配规则对所述页面进行解析及数据提取,并将提取的数据发送给所述主机服务器中的管道,所述管道则用于将所述提取的数据存储至所述预设的数据库中。
5.根据权利要求4所述一种分布式爬虫的集中管理系统,其特征在于,所述从机服务器采用多线程的方式对所述页面进行解析及数据提取。
6.根据权利要求5所述一种分布式爬虫的集中管理系统,其特征在于,所述多线程的数量由CONCURRENT_REQUESTS模块确定。
7.根据权利要求4所述一种分布式爬虫的集中管理系统,其特征在于,所述从机服务器中的爬虫继承爬虫功能及RedisMixin,所述RedisMixin用于从所述包含URL的request中提取URL。
8.根据权利要求7所述一种分布式爬虫的集中管理系统,其特征在于,继承所述爬虫功能时,调用steupsetup_redis函数,所述setup_redis函数用于连接redis队列。
9.根据权利要求4所述一种分布式爬虫的集中管理系统,其特征在于,当所述从机服务器中的爬虫处于空闲状态时,调用spider_idle函数,所述spider_idle函数用于调用schedule_next_request函数,以使得所述爬虫处于活着状态,且抛出DontCloseSpider异常。
10.根据权利要求4所述一种分布式爬虫的集中管理系统,其特征在于,当所述从机服务器中的爬虫解析到数据时,调用item_scraped函数,所述item_scraped函数用于调用schedule_next_request函数,获取下一个request。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市宝视佳科技有限公司,未经深圳市宝视佳科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011240728.3/1.html,转载请声明来源钻瓜专利网。