博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于分布式爬虫
阅读量:5077 次
发布时间:2019-06-12

本文共 703 字,大约阅读时间需要 2 分钟。

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

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

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

 

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

 

转载于:https://www.cnblogs.com/ydf0509/p/7743858.html

你可能感兴趣的文章
COMPRESSING DEEP CONVOLUTIONAL NETWORKS USING VECTOR QUANTIZATION 论文笔记
查看>>
前端css实现最基本的时间轴
查看>>
bootstrap+fileinput插件实现可预览上传照片功能
查看>>
编程里的API是什么意思?
查看>>
第三周作业,关于老师的一个问题给出了一点自己的想法
查看>>
无线局域网中iPhone无法访问IIS
查看>>
随笔4
查看>>
win 7 安装OFFICE 2007 提示2203错误
查看>>
.NET Core IdentityServer4实战 第一章-入门与API添加客户端凭据
查看>>
PowerShell Commands for SharePoint 2007 PowerShell Commands for SharePoint 2007
查看>>
GPIO的寄存器BSRR和BRR
查看>>
[转]MSP430单片机低功耗控制与系统工作模式详解
查看>>
[多线程]线程基础(对象锁、class锁、同步、异步)
查看>>
一、Python表达式基础
查看>>
Android图片内存优化的几点心得
查看>>
【视频】半小时内编写一个贪吃蛇游戏
查看>>
Pyspider
查看>>
TCP与UDP区别(转)
查看>>
.NET 开发: 确定计算机上已安装的 .NET Framework 版本
查看>>
Python进阶05 循环设计
查看>>