分布式爬虫
来源:互联网 发布:elf淘宝 编辑:程序博客网 时间:2024/06/04 17:55
RSpider
一个基于scrapy-redis的分布式爬虫模板,在scrapy-redis自带的example的基础上进行修改,添加在实际爬取过程中大部分爬虫可能用到的功能,使的构建分布式爬虫更加的简单。
scrapy-redis: https://github.com/darkrho/scrapy-redis
安装Redis
Windows
Redis
官网没有windows
的安装程序,但是微软的MsOpenTech
团队维护了Windows
的Redis
,编译了可执行程序,需要的可以到https://github.com/MSOpenTech/redis/releases下载
Ubuntu
$sudo apt-get install redis-server
Redis
图形化管理
下载地址:https://github.com/cinience/RedisStudio/releases
安装Scrapy-redis
scrapy-redis
GitHub地址:https://github.com/darkrho/scrapy-redis
推荐使用pip
安装
$pip install scrapy-redis
使用BSpider
从GitHub
克隆仓库,克隆成功即可得到一个可以运行的爬虫,该爬虫默认已经配置好了Redis
,worker
以及用户代理等功能
$ git clone https://github.com/KDF5000/RSpider.git
配置Scrapy-redis
Scrapy-redis
的所有配置到放在setting.py
的特定位置,如下面所示,每个配置项代表什么意思注释已经详细的说明,不需要过多解释,如果不想使用Scrapy-redis
将所有配置项注释掉即可
# 修改scrapy默认的调度器为scrapy重写的调度器 启动从reids缓存读取队列调度爬虫SCHEDULER = "scrapy_redis.scheduler.Scheduler"# 调度状态持久化,不清理redis缓存,允许暂停/启动爬虫SCHEDULER_PERSIST = True# 请求调度使用优先队列(默认)#SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderPriorityQueue'# 请求调度使用FIFO队列#SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderQueue'# 请求调度使用LIFO队列#SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderStack'# 最大的空闲时间,避免分布式爬取得情况下爬虫被关闭# 此设置只适用于SpiderQueue和SpiderStack# 也是爬虫第一次启动时的等待时间(应为队列是空的)#SCHEDULER_IDLE_BEFORE_CLOSE = 10# 存储爬取到的item,一定要在所有的pipeline最后,即设定对应的数字大于其他pipelineITEM_PIPELINES = { 'RSpider.pipelines.BaseSpiderPipeline': 256, 'scrapy_redis.pipelines.RedisPipeline': 300}# 指定redis的地址和端口(可选,程序将使用默认的地址localhost:6379)REDIS_HOST = 'localhost'REDIS_PORT = 6378# 声明redis的url地址(可选)# 如果设置了这一项,则程序会有限采用此项设置,忽略REDIS_HOST 和 REDIS_PORT的设置#REDIS_URL = 'redis://user:pass@hostname:9001'
配置graphite
安装graphite
目前graphite
不支持Windows
,所以使用Windows
的用户要么在自己电脑搭个虚拟环境,要么在一台可以访问的Linux
主机搭建该服务。如果有时间研究一下Docker
自己写个镜像。
具体安装参考http://baidu.com
Scrapy
配置graphite
该模板源码自定一个scrapy
的Stats Collection,封装了graphite client
使用plaintext protocol发送数据到graphite
所在服务器的Carbon
,客户端的使用可以查看statscol/graphite.py
文件
无图无真相
- 分布式爬虫
- 分布式爬虫
- 分布式爬虫
- 分布式爬虫
- 分布式爬虫
- 爬虫总结(四)-- 分布式爬虫
- Python爬虫之分布式爬虫
- 分布式网络爬虫浅见
- 分布式网页爬虫QQQ
- 垂直领域分布式爬虫
- 分布式爬虫系统
- 分布式爬虫入门
- Python分布式爬虫原理
- 分布式爬虫系统随笔
- python分布式爬虫
- 简陋的分布式爬虫
- 分布式爬虫学习
- 分布式爬虫架构设计
- App应用之启动界面SplashActivity的使用
- python写csv文件
- 【疑难杂症】Android studio 问题总结
- Android webview与js交互
- [c#]asp.net开发微信公众平台(1)数据库设计
- 分布式爬虫
- md5 加密java代码
- [Leetcode]House Robber II
- who can help
- Android WebView 与JS的数据交互
- java json
- java中session对象及其常用方法
- ios 优化TableView技巧
- 指定打包压缩方式