# 手把手教学超详细python通用爬虫分布式框架

# 手把手教学超详细python通用爬虫分布式框架,第1张

手把手教学超详细python通用爬虫分布式框架(一)

` 这里日后添加系列文章的所有文章的目录


文章目录
  • 手把手教学超详细python通用爬虫分布式框架(一)
  • 前言
  • 一、所谓任务?
  • 二、任务需要什么
    • 1.启动格式
    • 2.任务执行流程分析
    • 3.任务灵活化
  • 总结


前言

采用 vue+flask,无高难度技术

爬虫越来越难,幸好公司爬的网站比较简单,我也逐渐学习了爬虫的分布式运维,记录下过程。
ps:一些不通用的分布式框架在我的git上可以下载,界面大致是这样:



一、所谓任务?

既然是分布式爬虫,总要有个任务去跑,但是每个爬虫所要的参数不同如何通用呢?没错,就是传json。

二、任务需要什么

我认为任务不仅包含爬虫运行的参数,还需要所在容器、运行时间,我们爬虫重要的还有长任务的请求间隔时间。

注意:其中很多参数是通用分布式客户端所搭配的,格式搞清楚了我们的客户端写完就再也不需要修改,一劳永逸。

1.启动格式

如下(示例,还有很多我没写):

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.任务执行流程分析

参数好了还不行,一些参数是后期添加的,比如容器、结果、状态等,我的导图:

暂时的导图,还有没考虑的我会及时更新

3.任务灵活化

我们要搞的是通用分布式,既然这样格局要打开,关于任务讲究的就是: 通用且具有表达,优雅而不失细节

总结

这次就讲任务设计模式,接下来还有总体思路,服务端设计,代码库设计,通用客户端(一劳永逸版)等。。。。。。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/755880.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-30
下一篇 2022-04-30

发表评论

登录后才能评论

评论列表(0条)

保存