分布式爬虫

3 篇文章 0 订阅
2 篇文章 0 订阅

RSpider

一个基于scrapy-redis的分布式爬虫模板,在scrapy-redis自带的example的基础上进行修改,添加在实际爬取过程中大部分爬虫可能用到的功能,使的构建分布式爬虫更加的简单。
scrapy-redis: https://github.com/darkrho/scrapy-redis

安装Redis

Windows

Redis官网没有windows的安装程序,但是微软的MsOpenTech团队维护了WindowsRedis,编译了可执行程序,需要的可以到https://github.com/MSOpenTech/redis/releases下载

Ubuntu
$sudo apt-get install redis-server
Redis图形化管理

下载地址:https://github.com/cinience/RedisStudio/releases

安装Scrapy-redis

scrapy-redisGitHub地址: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最后,即设定对应的数字大于其他pipeline
ITEM_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

该模板源码自定一个scrapyStats Collection,封装了graphite client使用plaintext protocol发送数据到graphite所在服务器的Carbon,客户端的使用可以查看statscol/graphite.py文件

无图无真相

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值