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

news/2024/11/20 11:27:28/

前言:

刚拿到一个留言,挺有意思的。有位小伙伴问:“我家里有台高配台式机还有两个笔记本,都连着同一个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地址        |
+----------------+------------------------+--------------------------------------+
现有情况下,我们可以这么优化:
台式机,就是你的主控台:
  1. - 分发器(你的任务下发助手)
  2. - 数据处理器(你的情报分析师)
  3. - 数据库写入器(你的秘书,负责记录)
  4. - IP抓取器(你的间谍,找IP信息)
笔记本们,你的现场小分队:
  1. - 爬取器(你的前线探子)
  2. - 解析器(你的码农,帮助解析数据)
  3. - 代理管理器(你的通讯兵,处理IP代理问题)
至于那中间件,就是你的后勤团队:
  1. - 消息队列(任务的接力棒)
  2. - 分布式存储(Redis,你的临时仓库)
  3. - SQL数据库(你的长期仓库)
然后,工作流程就像这样:
​
用户 ---> 控制节点(台式机)| --> 分发器 ---(任务队列)---> 爬取器(笔记本1和2)|                                   | ----> 网页|                                   | <---- 初步解析结果| <-- 数据处理器 <---(结果队列)--- 解析器(笔记本1和2)| <-- 数据库写入器 ---> SQL数据库| <-- IP抓取器 ---> 代理IP池(Redis)
代理数据源 ---> IP抓取器​

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

再来,如果你要是觉得还没玩够,就再加点料:
用户 ---> 控制节点(台式机)| --> 分发器 ---(任务队列)---> 爬取器(笔记本1和2) -- 日志系统 <-- 系统各部分|                                   | ----> 网页|                                   | <---- 初步解析结果 ---- 日志系统 <-- 系统各部分| <-- 数据处理器 <---(结果队列)--- 解析器(笔记本1和2) -- 日志系统 <-- 系统各部分| <-- 数据库写入器 ---> SQL数据库  -- 日志系统 <-- 系统各部分| <-- IP抓取器 ---> 代理IP池(Redis) -- 日志系统 <-- 系统各部分 |                      |               监控系统 <-- 系统各部分|                      |--(错误队列)--> 错误处理器       
代理数据源 ---> IP抓取器     -- 日志系统 <-- 系统各部分

- 日志系统,你的情报收集器,记录所有行动日志。
- 错误处理系统,你的问题处理顾问,出了岔子也不怕。
- 监控系统,就是你的眼睛,24/7不打烊,实时监控所有动态。
各位新来的组件,简单说就是:
- 日志系统:就是你的情报库,啥都能留下来。
- 错误处理:出了问题,这边帮你分类,标记,处理,重试,总之就是保证任务能顺利完成。
- 监视系统:就是你的仪表盘,跟你说你的爬虫身体好不好,需要不需要加油。

总结:

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


http://www.ppmy.cn/news/1271493.html

相关文章

用EasyStreamingServer将MP4模拟成RTSP流无声音的问题,可以改用EasyDarwin做文件模拟RTSP实时流,有声音!

之前有一篇博客介绍用EasyStreamingServer将文件模拟成RTSP实时流&#xff0c;提供给类似于智能分析服务、NVR等做实时录像《用软件模拟IPC的RTSP流&#xff0c;对接烟火识别算法服务&#xff0c;做实时的烟火检测、人员入侵检测、抽烟检测等算法》 但最近有人反馈MP4有声音&a…

基于YOLOv8深度学习的高精度车辆行人检测与计数系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

计算机网络 internet应用 (水

ARPA net ---Internet 前身 发展史: ARPA net 第一个主干网..美国军方NSFnet 美国国家科学基金会NSFANSnet 美国全国 (internet 叫法开始出现) 第二代互联网(现在() IP地址 IP地址 最高管理机构 - InterNIC IPV4 32位 IPV6 128位 域名 起名 解析 domain name sys…

LeetCode 2415. 反转二叉树的奇数层:深度优先搜索(DFS)

【LetMeFly】2415.反转二叉树的奇数层&#xff1a;深度优先搜索(DFS) 力扣题目链接&#xff1a;https://leetcode.cn/problems/reverse-odd-levels-of-binary-tree/ 给你一棵 完美 二叉树的根节点 root &#xff0c;请你反转这棵树中每个 奇数 层的节点值。 例如&#xff0c…

一个文件下png,jpg,jpeg,bmp,xml,json,txt文件名称排序命名

#utf-8 #authors 会飞的渔WZH #time:2023-12-13 import os# 要修改的图像所在的文件夹路径 root_path = rD:\images\lines2\3 # 要修改的图像所在的文件夹路径filelist = os.listdir(root_path

【LeetCode】第18题. 四数之和

今日学习的文章链接和视频链接 leetcode题目地址&#xff1a;第18题. 四数之和 代码随想录题解地址&#xff1a;代码随想录 题目简介 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], num…

CSS层叠样式表一

1&#xff0c;CSS简介 1.1 CSS-网页的美容师 CSS的主要使用场景就是美化网页&#xff0c;布局页面的 CSS也是一种标记语言 CSS主要用于设置HTML页面中的文本内容&#xff08;字体&#xff0c;大小&#xff0c;对齐方式等&#xff09;、图片的外形&#xff08;宽高、边框样式…

WX小程序案例(一):弹幕列表

WXML内容 <!--pages/formCase/formCase.wxml--> <!-- <text>pages/formCase/formCase.wxml</text> --> <view class"bk bkimg"><!-- <image src"/static/imgs/ceeb653ely1g9na2k0k6ug206o06oaa8.gif" mode"scal…