爬虫框架Scrapy 之(九) --- scrapy分布式原理

原理

分布式redis数据库中有4个key

  1. xxx:start_urls:用于向分布式系统提供起始url
  2. xxx:requests:用于盛放在爬虫运行的过程中新产生的那些请求对象
  3. xxx:items:用于存储爬虫爬取的数据
  4. xxx:dupefilter:用于盛放已经被访过的那些请求对象

分布式爬虫的运行过程

  1.  把所有的分机(slaver端)上的爬虫运行起来,由于没有start_urls,所有的分机都在等待起始url的产生
  2.  通过服务器脚本把那些起始的url放入到xxx:start_urls列表中
  3.  所有的slaver去竞争master端的xxx:start_urls中的起始url,一旦竞争到url则开启爬虫,没有竞争到slaver端继续监视xxx:start_urls和xxx:requests这两个列表
  4.  所有的分机如果对某个url访问成功则会把这个url加入去重列表中(即xxx:dupefilter),如果没有访问成功则会启动重传机制,如果再不成功就会这个url返回给requests列供其他slaver来使用
  5.  爬取成功的数据会通过管道组件存入到redis数据库的xxx:items列表中,并且把该页面新产生的url加入到xxx:requests列表中
  6.  如果所有的url都被取完(start_urls和requests两个列表都为空),则所有的slaver端都会暂停等待

转载于:https://www.cnblogs.com/TMMM/p/11376907.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值