您的位置:首页 > 数据库 > Redis

基于scrapy和redis的分布式爬虫环境搭建

2016-04-29 16:30 751 查看

1,安装scrapy,redis,scrapy-redis

#安装scrapy
sudo pip install scrapy
#安装redis
cd /usr/local/src
wget http://download.redis.io/releases/redis-3.0.7.tar.gz tar zxvf  redis-3.0.7.tar.gz
cd  redis-3.0.7.tar.gz
make
mkdir /usr/local/redis/{conf,run,db} -pv
cd /usr/local/src/redis-3.0.7/
cp redis.conf  /usr/local/redis/conf
cd src
cp redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server mkreleasehdr.sh /usr/local/redis/
#配置redis后台运行
vim  /usr/local/redis/conf/redis.conf
daemonize yes
#启动redis
cd /usr/local/redis/
./redis-server conf/redis.conf
#添加开机启动项
echo "/usr/local/redis/redis-server /usr/local/redis/conf/redis.conf" >> /etc/rc.local
#安装scrapy-redis
pip install scrapy-redis
#设置PATHONPATH
cd /lib64/python2.7/site-packages
cp -r /home/hanchaoqi/scrapy-redis/scrapy_redis/ .


2,运行example-project

#修改master的redis配置文件redis.conf,注释bind,或者添加slave的IP
#bind 127.0.0.1
或者
bind 0.0.0.0
#重启redis
redis-server restart
#slave中测试是否可以连接master的redis,如果出现no route to host,但是可以ping通,尝试设置防火墙打开该端口
redis-cli -h 192.168.1.111 -p 6379
#部署scrapy-redis
#slave端,setting.py中的最后一行增加
REDIS_URL = 'redis://192.168.1.112:6379'
#master端,setting.py中增加
REDIS_HOST = 'localhost'
REDIS_PORT = 6379
#不分顺序,在master和slave上启动爬虫,可以在两台机器上分别运行redis-cli来检查本地是否有数据以确定两个爬虫是否共享同一个redis队列
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: