关于分布式爬虫
小爬虫就是一半的单线程爬虫,入门。
多线程/协程爬虫是快速爬虫。
分布式爬虫是大规模爬虫。
说到分布式,好像很高大上的词,其实普通分布式很简单,单机爬虫种子可以放在程序的列表 queue队列 或者本机的mysql redis都可以。分布式爬虫最简单就是借助redis了,多个爬虫从同一台redis机器取种子 ,同一个redis去重,这就是分布式了。
涉及到一个换位思考了,不要想成是一台机器给其他机器分布式的分发任务,这样想实现难度大一点。如果换成看做是多个程序从一个redis中取种子,那这样就很容易设计了。redis的pop push api很好使用,redis和这种分布式爬虫天作之合,一般不是用来mysql mogodb来构建分布式,是用来存储的。
把上面这种叫主动分布式,程序不断的拿种子来执行爬取。
还有一种是,被动的,爬虫程序不动,别的来请求了,程序就干活,简单的想法就是开个web接口,比如django viwes函数里面来触发爬虫。但分布式就要用比上面这种复杂一些的微服务架构,不可能一台台的部署然后修改njinx。当爬虫组件种类很多,需要用 微服务注册 微服务发现。不然生产难以部署,新增一个爬虫种类或者新增一台爬虫扩展现有爬虫,需要大动干戈。
第一种适合大规模乏爬取,除了关键的入口url,连将来要爬的url大部分都是未知的。
第二种是适合爬取指定的信息,要爬的url都一清二楚了,但每个url中需要发送不同的get post参数,url是确定的参数是未知的,需要从接口来传入参数。
反对极端面向过程编程思维方式,喜欢面向对象和设计模式的解读,喜欢对比极端面向过程编程和oop编程消耗代码代码行数的区别和原因。致力于使用oop和36种设计模式写出最高可复用的框架级代码和使用最少的代码行数完成任务,致力于使用oop和设计模式来使部分代码减少90%行,使绝大部分py文件最低减少50%-80%行的写法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」