谈一下分布式爬虫

谈一下分布式爬虫Redis下载地址:https://github.com/tporadowski/redis/releases

大家好,欢迎来到IT知识分享网。

一、什么是分布式爬虫?

      一般的爬虫是在一台机器上进行爬取某个网站的数据,分布式爬虫是多台机器上同时爬取某个网站的数据。如下图所示:

谈一下分布式爬虫

 二、如何实现分布式爬取

1.对于实现分布式爬取的疑问:

疑问1:

分布式爬虫是好几台机器在同时运行,如何保证不同的机器爬取页面的时候不会出现重复爬取的问题。

如果出现重复爬取,那么本质还是在一台机器上的爬虫。

疑问2:

分布式爬虫在不同的机器上运行,在把数据爬完后如何保证保存在同一个地方。

如果不能保存到同一个地方,数据储存就会出现问题。

2.问题的解决:

疑问1的解决:      

找到一个中间商,这个中间商负责所有要获取url的分发,保证url不会被重复爬取。

疑问2的解决:

找到一个中间商,数据都储存在中间商那里,保证数据不会被重复存储。

3.中间商是什么?

一个强大的非关系型数据库:Redis。

三、Redis简介

      Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。

      用大白话来说,Redis储存的数据就像字典一样,都是以键值对的形式存在的。

谈一下分布式爬虫

 Redis特点:

 多台机器间共享数据。

两个疑问: 

1.分布式爬虫是好几台机器在同时运行,如何保证不同的机器爬取页面的时候不会出现重复爬取的问题。

2.分布式爬虫在不同的机器上运行,在把数据爬完后如何保证保存在同一个地方。

 因为Redis可以在多台机器间共享数据:

对于第1个疑问:在使用的时候,redis可以判断出来这个url是否被获取过,如果获取过了,那就不再分给其他的机器,如果没有获取过,那就分给其他机器。【成功解决不会重复爬取的问题】

对于第2个疑问:Redis具有数据存储的功能,可以存储从不同机器爬取到的数据。

所以实现分布式爬虫的关键点:使用Redis作为中间商来协调数据与存储数据。

四、如何实现分布式爬虫

      由于Scrapy本身并不具备分布式的功能,所以在这里需要安装【Scrapy-Redis】组件,这个组件正是利用了Redis可以分布式的功能,集成到Scrapy框架中,使得爬虫可以进行分布式。

1.Scrapy-Redis的安装:

pip install scrapy-redis==0.7.1

2.Scrapy-Redis架构图:

【Scrapy架构图】

谈一下分布式爬虫

 

 

 【Scrapy-Redis架构图】

谈一下分布式爬虫

 

 3.分布式爬虫架构图

谈一下分布式爬虫

 

 五、分布式爬虫的优点:

  1. 多台机器同时爬取,数据获取效率更高。
  2. 可以充分利用多台机器的带宽。
  3. 可以充分利用多台机器的ip地址。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/14471.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信