twisted开发分布式任务调度爬虫
来源:互联网 发布:淘宝图片空间协议手机 编辑:程序博客网 时间:2024/06/03 16:51
满足需求:爬虫减少重复数据、相似数据。
数据检索效率要高
具体方案:
1:使用向量夹脚余弦来计算文本间的相似度,大于80%可认为数据相似度过高,不采集。
2:使用elasticsearch进行数据invert index。提高查询速度。支持分布式,可拓展。
3:使用gearman、或者twisted自己编写任务调度服务器。
twisted服务器控制器controler, 和爬虫节点 crawler_node
controler负责爬虫任务的存储,管理,分发
crawler_node爬虫节点
具体实施:
elasticsearch,使用smartcn中文分词器,利用es的自身的排序结果,先过滤一遍最相似的数据文档,再使用向量夹脚余弦进行计算。
twisted 控制器服务器,将有任务队列,任务添加入口,任务分配入口,使用post请求。并有数据存储入口。
twisted crawler node,多线程爬虫。
使用到的python模块。pyes,twisted
定义队列
class CrawlerTaskBuffer: def __init__(self, max_queue_size) : self.tasks=[] self.max_queue_size=max_queue_size def isFull(self) : size=0 size=len(self.tasks) return size>=self.max_queue_size def isEmpty(self) : return len(self.tasks)==0 def getTask(self) : if len(self.tasks)==0: task=None else : task=self.tasks.pop() return task def addTask(self, task) : ret=True self.tasks.append(task) return ret def pushbackTask(self, task) : ret=True self.tasks.insert(0,task) return ret
controler 控制服务器
0 0
- twisted开发分布式任务调度爬虫
- 分布式任务队列与任务调度系统Celery进阶——分布式爬虫
- 分布式爬虫调度策略
- 项目 分布式 任务调度
- 一步一步分布式任务调度
- Lts分布式任务调度
- 分布式任务调度解决方案
- 分布式任务调度系统分析(tbschedule)
- clover分布式任务调度系统
- 分布式任务调度实现方式
- 分布式任务调度中间件SchedulerX
- clover分布式任务调度系统
- 分布式定时任务调度系统
- curator实现分布式任务调度
- 分布式任务调度平台Antares
- 分布式任务调度xxl-job
- elasticjob分布式任务调度中间件
- 结合调度器完成爬虫任务
- HNOI2016 网络 [树链剖分]
- 二叉查找树和二叉堆的分析小结
- React Native之打包
- git 命令 (gnu interactive tools)
- Activity和Fragment之间的联系和区别
- twisted开发分布式任务调度爬虫
- 异常
- Android4.4 wpa_supplicant深入分析之wpa_supplicant初始化流程续
- C++第四次上机实验-穷举法
- C#通用类Helper整理
- 使用腾讯云发布项目后360浏览器通过ip公网访问项目css样式不完整
- 设置zookeeper开机自启动
- Selenium 2.0的由来及设计架构
- SPFA模板