Python爬虫Python3自学 爬虫实战计算机+技术+世界

Scrapy-redis实现分布式爬虫

2017-09-23  本文已影响939人  Evtion

Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试
Scrapy框架已经可以完成很大的一部分爬虫工作了。但是如果遇到比较大规模的数据爬取,直接可以用上python的多线程/多进程,如果你拥有多台服务器,分布式爬取是最好的解决方式,也是最有效率的方法。
Scrapy-redis是基于redis的一个scrapy组件,scrapy-redis提供了维持待爬取url的去重以及储存requests的指纹验证。原理是:redis维持一个共同的url队列,各个不同机器上的爬虫程序获取到的url都保存在redis的url队列,各个爬虫都从redis的uel队列获取url,并把数据统一保存在同一个数据库里面。
之前听了崔庆才老师的知乎爬虫课程,但是关于利用scrapy-redis构建分布式一直不太清晰。所以下面会利用MongoDB、redis搭建分布式爬虫。

1. linux系统机器一台(博主用的是阿里云ECS centos7.2,如需ECS安装的过程可以参照之前的阿里云ECS安装文章)
2. Redis[redis的windows客户端和windows的RedisDesktopMananger]和Linux redis版本
3. Anaconda(windows)和Anaconda(Linux版本)
4  MongoDB(linux版本)
5. Robomongo 0.9.0(mongodb的可视化管理工具)
说走就走!! 怎么安装还没有完成
  1. 在windows和linux中分别启动爬虫进程,然后查看获取到的数据:
scrapy crawl zhihu
scrapy crawl zhihu

至此已经完成了scrapy-redis分布式的配置
本文参考: 崔庆才博客

上一篇 下一篇

猜你喜欢

热点阅读