可以看到,scrapy单机模式,通过一个scrapy引擎通过一个调度器,将Requests队列中的request请求发给下载器,进行页面的爬取。
那么多台主机协作的关键是共享一个爬取队列。
所以,单主机的爬虫架构如下图所示:
前文提到,分布式爬虫的关键是共享一个requests队列,维护该队列的主机称为master,而从机则负责数据的抓取,数据处理和数据存储,所以分布式爬虫架构如下图所示:
2、环境配置
目前已经有专门的 python 库实现了分布式架构。Scrapy-Redis库改写了Scrapy的调度器,队列等组件,可以方便的实现Scrapy分布式架构。
Scrapy-Redis链接:https://github.com/rolando/scrapy-redis
不过,想要运用这个库,我们需要安装 Redis 数据库
(1)windows安装redis
下载地址:https://github.com/MSOpenTech/redis/releases
下载完成后,安装即可,非常简单(其实这里没有用到windows的redis,不过装一装也不麻烦),安装完成后,windows的本地redis服务是默认启动的。
接下来可以继续安装一个redis可视化工具,Redis Desktop Manager
下载地址:https://github.com/uglide/RedisDesktopManager/releases
我们选择一个比较稳定的版本进行下载:
安装完成,我们可以测试一下本地的redis环境,输入我们的连接信息:
(3)windows下访问虚拟机redis
我们选择使用虚拟机上的redis数据库来维护爬取队列,所以接下来,我们使用windows下的可视化客户端访问虚拟机下的redis:
可以看到,成功访问:
3、代码实现
使用Scrapy-Redis实现分布式爬虫,需要在scrapy的setting.py中添加如下的配置,当然还有很多其他可用配置,这里只需添加如下的几个就可以实现分布是爬取:
而redis中,则维护了一个爬取队列:
短短几分钟,我们就抓取了百度贴吧聊天吧的100页帖子3900+条,存入了本地的 mongodb 数据库:
至此,分布式爬虫练手完毕!
如果想要学习python爬虫的话,
进群:125240963 即可获取数十套PDF哦!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- python爬虫 | 一文搞懂分布式进程爬虫
- 分布式爬虫对新站的协助
- 分布式通用爬虫框架Crawlab
- 如何构建一个分布式爬虫:基础篇
- 基于redis的分布式爬虫实现方案
- 使用Docker Swarm搭建分布式爬虫集群
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Music Recommendation and Discovery
Òscar Celma / Springer / 2010-9-7 / USD 49.95
With so much more music available these days, traditional ways of finding music have diminished. Today radio shows are often programmed by large corporations that create playlists drawn from a limited......一起来看看 《Music Recommendation and Discovery》 这本书的介绍吧!