爬虫工作量由小到大的思维转变---<第三章 搞多大的盘>

前言:

刚拿到一个留言,挺有意思的。有位小伙伴问:"我家里有台高配台式机还有两个笔记本,都连着同一个Wi-Fi,我能搞个多大程度的爬虫项目?" 所以呢,咱们得先整出个框架来---也就是列个单子,看看要干什么,怎么干?

正文:

先说说基础的设定吧:

- 台式机,咱们的大脑中枢:分发爬取任务,接着要处理数据,把成果存到SQL里,还得更新Redis的完成状态,顺便管理那些IP代理池。

  • 笔记本电脑1 & 2,咱们的勤劳双手:提取任务,开始爬,初步搞定数据然后塞进Redis,过程中别忘了从IP池里换代理,得一把手速。

    +----------------+------------------------+--------------------------------------+
    | 设备 | 主要职责 | 具体任务 |
    +----------------+------------------------+--------------------------------------+
    | 台式机 | 任务调度与数据处理 | 1. 派发爬取任务给两台笔记本 |
    | | | 2. 数据解析和逻辑处理 |
    | | | 3. 数据存储到SQL数据库 |
    | | | 4. 记录任务完成状态到Redis |
    | | | 5. 抓取IP并更新到Redis IP代理池 |
    +----------------+------------------------+--------------------------------------+
    | 笔记本电脑1 | 网页爬取与初步解析 | 1. 提取任务和网页抓取 |
    | | | 2. 初步解析, 结果存为dict到Redis中 |
    | | | 3. 从IP代理池抓取和管理IP地址 |
    +----------------+------------------------+--------------------------------------+
    | 笔记本电脑2 | 网页爬取与初步解析 | 1. 提取任务和网页抓取 |
    | | | 2. 初步解析, 结果存为dict到Redis中 |
    | | | 3. 从IP代理池抓取和管理IP地址 |
    +----------------+------------------------+--------------------------------------+

现有情况下,我们可以这么优化:
台式机,就是你的主控台:
- 分发器(你的任务下发助手)
- 数据处理器(你的情报分析师)
- 数据库写入器(你的秘书,负责记录)
- IP抓取器(你的间谍,找IP信息)
笔记本们,你的现场小分队:
- 爬取器(你的前线探子)
- 解析器(你的码农,帮助解析数据)
- 代理管理器(你的通讯兵,处理IP代理问题)
至于那中间件,就是你的后勤团队:
- 消息队列(任务的接力棒)
- 分布式存储(Redis,你的临时仓库)
- SQL数据库(你的长期仓库)
然后,工作流程就像这样:
复制代码
​
用户 ---> 控制节点(台式机)
                           | --> 分发器 ---(任务队列)---> 爬取器(笔记本1和2)
                           |                                   | ----> 网页
                           |                                   | <---- 初步解析结果
                           | <-- 数据处理器 <---(结果队列)--- 解析器(笔记本1和2)
                           | <-- 数据库写入器 ---> SQL数据库
                           | <-- IP抓取器 ---> 代理IP池(Redis)
代理数据源 ---> IP抓取器

​
你发号施令,任务下发到任务队列,小分队监听到任务就开始行动,行动完毕,再回传数据。你就坐在那儿,等成果上门,处理之后存档,同时记得更新IP代理池。

再来,如果你要是觉得还没玩够,就再加点料:
复制代码
用户 ---> 控制节点(台式机)
                           | --> 分发器 ---(任务队列)---> 爬取器(笔记本1和2) -- 日志系统 <-- 系统各部分
                           |                                   | ----> 网页
                           |                                   | <---- 初步解析结果 ---- 日志系统 <-- 系统各部分
                           | <-- 数据处理器 <---(结果队列)--- 解析器(笔记本1和2) -- 日志系统 <-- 系统各部分
                           | <-- 数据库写入器 ---> SQL数据库  -- 日志系统 <-- 系统各部分
                           | <-- IP抓取器 ---> 代理IP池(Redis) -- 日志系统 <-- 系统各部分 
                           |                      |               监控系统 <-- 系统各部分
                           |                      |--(错误队列)--> 错误处理器       
代理数据源 ---> IP抓取器     -- 日志系统 <-- 系统各部分
- 日志系统,你的情报收集器,记录所有行动日志。
  • 错误处理系统,你的问题处理顾问,出了岔子也不怕。
  • 监控系统,就是你的眼睛,24/7不打烊,实时监控所有动态。
各位新来的组件,简单说就是:
  • 日志系统:就是你的情报库,啥都能留下来。
  • 错误处理:出了问题,这边帮你分类,标记,处理,重试,总之就是保证任务能顺利完成。
  • 监视系统:就是你的仪表盘,跟你说你的爬虫身体好不好,需要不需要加油。

总结:

就这么简单。咱们有了这些,想要爬得多快都没问题。所以,赶紧动手吧,期待你们的好消息!

相关推荐
Jonathan Star5 小时前
网站识别爬虫(包括以浏览器插件形式运行的爬虫)主要通过分析请求特征、行为模式等差异来区分人类用户和自动化程序
运维·爬虫·自动化
深蓝电商API1 天前
从爬虫到平台:如何把你的爬虫项目做成一个技术产品?
爬虫·信息可视化·数据挖掘
苏打水com1 天前
爬虫进阶实战:突破动态反爬,高效采集CSDN博客详情页数据
爬虫·python
小白学大数据2 天前
从携程爬取的杭州酒店数据中提取价格、评分与评论的关键信息
爬虫·python·性能优化
合作小小程序员小小店2 天前
基于可视化天气系统demo,基于python+ matplotlib+request爬虫,开发语言python,数据库无,10个可视化界面,需要的可以了联系。
开发语言·爬虫·python·matplotlib
深蓝电商API2 天前
反反爬虫实战:手撕某知名网站Webpack加密的JavaScript
javascript·爬虫·webpack
孤狼warrior3 天前
爬虫进阶 JS逆向基础超详细,解锁加密数据
javascript·爬虫
浏览器API调用工程师_Taylor3 天前
我是如何将手动的日报自动化的☺️☺️☺️
前端·javascript·爬虫
hans汉斯3 天前
基于机器学习的商业银行信贷风险评估系统构建与实证研究
大数据·人工智能·爬虫·算法·yolo·机器学习·支持向量机