关于分布式爬虫

小爬虫就是一半的单线程爬虫,入门。

多线程/协程爬虫是快速爬虫。

分布式爬虫是大规模爬虫。

 

说到分布式,好像很高大上的词,其实普通分布式很简单,单机爬虫种子可以放在程序的列表 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是确定的参数是未知的,需要从接口来传入参数。

 

posted @   北风之神0509  阅读(301)  评论(0编辑  收藏  举报
编辑推荐:
· 从 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 热点速览」
点击右上角即可分享
微信分享提示