在服务器上搭建scrapy分布式爬虫环境的过程

 

1.python 的安装

在装过好几台服务器后总结出了最短且有效的装 python 的方法,参考了这篇文章这里简要总结一下

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
mkdir /usr/local/python3
tar -zxvf Python-3.6.3.tgz
cd Python-3.6.3
./configure --prefix=/usr/local/python3
make && make install
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 创建 python3 的软链接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 创建 pip3 的软链接
  • 最后命令行下输入pip3python3 -V 验证一下是否都成功

2.mongodb / mysql的安装

  •  

  • 在从机上都装上 mongodb,爬取的数据都存在各自的服务器上,之后再汇总。

  • vim /etc/yum.repos.d/mongodb-org-3.4.repo
    [mongodb-org-3.4] 
    name=MongoDB Repository 
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ 
    gpgcheck=1 
    enabled=1 
    gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
    

    将这段代码复制粘贴到刚才创建的mongodb-org-3.4.repo文件中。

  • 下载安装MongoDB

  • yum -y install mongodb-org
    systemctl enable mongod.service

    设置开机启动

  • 编辑配置文件,注释掉bindlp,并重启mongodb

systemctl restart mongod.service               //重启mongodb服务


systemctl stop mongod.service               //停止 mongodb

3.利用 pip3 安装 scrapy 等

先安装Twisted组件,再安装scrapy

  • pip3 install scrapyd
  • pip3 install scrapy
  • pip3 install pymongo
  • pip3 install redis
  • pip3 install redis-client

安装完以上内容,基本能满足分布式从机的爬取。但是在命令行直接输入scrapy 和 scrapyd 发现会报错,提示command not found,这里可以通过创建软链接解决问题。

find / -name scrapy

找到系统中scrapy所在的目录,选择在bin目录下的路径

ln -s /usr/local/python3/bin/scrapy /usr/bin/scrapy

这是在我的路径下创建的软链接.scrapy 命令行再输入scrapy发现已经可用

主机配置
以上完成了从机的配置,接下里配置主机
主机和从机不同在于它需要提供 redis 服务来保存请求队列,所以主要是安装 redis 服务。参考了众多文章后,还是推荐这篇文章 
这里梳理一下过程:

yum install gcc
wget http://download.redis.io/releases/redis-3.0.6.tar.gz
tar zxvf redis-3.0.6.tar.gz
cd redis-3.0.6 建议将文件夹名字修改为redis看着简洁一些
vim redis.conf 打开 redis 配置文件
#bind 127.0.0.1 将绑定 ip 注释掉,以便远程访问
daemonize yes 在 redis.conf 中修改该选项为 yes,即后台运行
requirepass 后加上登陆密码
protected-mode no 关闭保护模式,接着保存退出
mkdir /etc/redis 
cp redis.conf /etc/redis/6379.conf 将 redis.conf 复制一份名为 6379.conf 到指定目录
cd utils 在原redis目录下打开utils文件夹
vim redis_init_script 修改启动脚本,并在开头添加如下代码 
#!/bin/sh 
#chkconfig: 2345 90 10 
#description: Redis is a persistent key-value database 
cp redis_init_script /etc/init.d/redisd 将启动脚本复制为 redis
chkconfig redisd on 设置开机启动
service redisd start 启动 redis
service redisd stop 关闭 redis

版权声明:本文为weixin_38924500原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。