` 这里日后添加系列文章的所有文章的目录
文章目录
- 手把手教学超详细python通用爬虫分布式框架(一)
- 前言
- 一、所谓任务?
- 二、任务需要什么
- 1.启动格式
- 2.任务执行流程分析
- 3.任务灵活化
- 总结
前言
采用 vue+flask,无高难度技术
爬虫越来越难,幸好公司爬的网站比较简单,我也逐渐学习了爬虫的分布式运维,记录下过程。
ps:一些不通用的分布式框架在我的git上可以下载,界面大致是这样:
一、所谓任务?
既然是分布式爬虫,总要有个任务去跑,但是每个爬虫所要的参数不同如何通用呢?没错,就是传json。
二、任务需要什么我认为任务不仅包含爬虫运行的参数,还需要所在容器、运行时间,我们爬虫重要的还有长任务的请求间隔时间。
注意:其中很多参数是通用分布式客户端所搭配的,格式搞清楚了我们的客户端写完就再也不需要修改,一劳永逸。
如下(示例,还有很多我没写):
work = {
"runing": 3600, # 运行时间
"spider_start_time":2022-04-01 00:00:00,#启动时间
"interval_time": { # 相关间隔时间
"aaa_com_request": 5, # aaa.com请求间隔
"aaa_com_error": 60, # aaa.com报错重试间隔
"once_work": 10, # 每次任务间隔
},
"code_addres": { # 代码所在地址,rpg、http模式。(后面会说)
"type": "rpg",
"address": "",
"code_name": "spiderName",
"version": 2
},
"up_res": { # 上传结果
"type": "redis",
"addres": '1.1.1.1',
"key": "",
"name": ""
},
"spider_params": { # 爬虫参数
"arg1": "",
"arg2": 2,
}
}
2.任务执行流程分析
参数好了还不行,一些参数是后期添加的,比如容器、结果、状态等,我的导图:
暂时的导图,还有没考虑的我会及时更新
我们要搞的是通用分布式,既然这样格局要打开,关于任务讲究的就是: 通用且具有表达,优雅而不失细节
。
这次就讲任务设计模式,接下来还有总体思路,服务端设计,代码库设计,通用客户端(一劳永逸版)等。。。。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)