可以看到,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搭建分布式爬虫集群
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
服务设计与创新实践
宝莱恩 (Andy Polaine)、乐维亚 (Lavrans Lovlie)、里森 (Ben Reason) / 王国胜、张盈盈、付美平、赵芳 / 清华大学出版社 / 2015-6-1 / CNY 69.00
产品经济的时代渐行渐远,在以服务为主导的新经济时代,在强调体验和价值的互联网时代,如何才能做到提前想用户之所想?如何比用户想得更周到?如何设计可用、好用和体贴的服务?这些都可以从本书中找到答案。本书撷取以保险业为代表的金融服务、医疗服务、租车及其他种种服务案例,从概念到实践,有理有据地阐述了如何对服务进行重新设计?如何将用户体验和价值提前与产品设计融合在一起? 《服务设计与创新实践》适合产品......一起来看看 《服务设计与创新实践》 这本书的介绍吧!