Centos7环境基于SipderKeeper 、Scrapyd、Supervisor搭建scrapy运行环境

一、系统环境:

   python:3.6.6
   Selenium :3.14.0          Firefox :61.0+    geckodriver :0.21+
   SpiderKeeper:1.2.0        Scrapyd:1.2.0     supervisor 
必要环境:
yum install zlib-devel bzip2-devel openssl-devel ncurese-devel gcc zlib 
yum install wget
yum install vim-enhanced
yum install zip unzip
yum install gcc-c++ 
yum install sqlite*
yum install epel-release
yum install nodejs
**安装firefox**
yum install firefox
[CentOS无桌面环境部署Selenium+Firefox](https://www.xnathan.com/2017/12/04/headless-selenium-on-centos/)
选装:

按自己应用的环境选择安装

#mysql安装驱动
yum install mysql-devel
#安装chrome
yum install Xvfb libXfont xorg-x11-fonts*
pip3 install  pyvirtualdisplay
[CentOS 6.4 yum安装chrome](https://www.centos.net.cn/archive/2258)
安装 gtk3

centos6下安装浏览器,需要安装gtk3(gtk3又需要很多包而且要手工下载安装。我没尝试成功、下面是一些安装时候看的一些文章,有兴趣可以自己试试,建议用centos7环境
https://www.gtk.org/download/linux.php
https://blog.csdn.net/libinbin_1014/article/details/44940197
https://www.cnblogs.com/etangyushan/p/5529952.html
yum install gcc make bison yasm atk-devel gtk2-devel cairo-devel glib2-devel pango-devel gettext-devel rpm-build expat-devel

二、安装python

#下载目录
cd /usr/local/src
#下载
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
tar zxvf Python-3.6.6.tgz
cd Python-3.6.6
#编译安装
cd Python-3.6.6
./configure --prefix=/usr/local/python/python3
make && make install

#查看原python路径
ls -al /usr/bin | grep python
clipboard.png
# 将原来 python 的软链接重命名
mv /usr/bin/python /usr/bin/python.bak
# 将 python 链接至 python3
ln -s /usr/local/python/python3/bin/python3.6 /usr/bin/python
# 这时,再查看 Python 的版本
python -V
clipboard.png

因为很多模块使用python2*等开发,修该为环境修改python3之后有问题,像yumfirewall

解决:

修改文件/usr/bin/yum/usr/libexec/urlgrabber-ext-downusr/bin/firewall-cmd/usr/sbin/firewalld 头中相应python为#!/usr/bin/python2.7


三、安装Easy_Install

#下载
cd /usr/local/src
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-18.0.1.zip
#解压
unzip setuptools-18.0.1.zip
#安装
cd setuptools-18.0.1
/usr/bin/python setup.py install
mv /usr/bin/easy_install /usr/bin/easy_install.bak
#软连接
ln -s /usr/local/python/python3/bin/easy_install /usr/bin/easy_install      

四、安装Pip

#下载
cd /usr/local/src
# 下载源代码
wget --no-check-certificate https://github.com/pypa/pip/archive/18.0.1.tar.gz
tar -zvxf 10.0.1.tar.gz   # 解压文件
cd pip-10.0.1
# 使用 Python 3 安装
/usr/bin/python setup.py install
# 创建软连接
ln -s /usr/local/python/python3/bin/pip /usr/bin/pip 
# 升级到最高版本
pip install --upgrade pip 

五、虚拟环境

#安装虚拟环境
pip install virtualenv virtualenvwrapper
#安装好了之后,查找virtualenv位置:=virtualenv
#查找virtualenvwrapper.sh位置:find / -name virtualenvwrapper.sh
# 创建软连接
ln -s /usr/local/python/python3/bin/virtualenv /usr/bin/virtualenv
# 修改/root/.bashrc文件(先建/var/workspace/virtualenvs和/var/workspace目录)
export WORKON_HOME=/var/workspace/virtualenvs
export PROJECT_HOME=/var/workspace
source /usr/local/python/python3/bin/virtualenvwrapper.sh 
# 修改后使之立即生效(也可以重启终端使之生效):
source /root/.bashrc

#使用虚拟环境
mkvirtualenv zqxt:创建运行环境zqxt
workon zqxt: 工作在 zqxt 环境 或 从其它环境切换到 zqxt 环境
deactivate: 退出终端环境

#操作:
  rmvirtualenv ENV:删除运行环境ENV
  mkproject mic:创建mic项目和运行环境mic
  mktmpenv:创建临时运行环境
  lsvirtualenv: 列出可用的运行环境
  lssitepackages: 列出当前环境安装了的包
#创建的环境是独立的,互不干扰,无需sudo权限即可使用 pip 来进行包的管理
#原生virtualenv的:
  virtualenv -p /usr/bin/python2.7 venv  #创建
  venv/bin/activate   #使用
  venv/bin/deactivate   #退出

七、运行项目

# 配置
vim /var/workspace/virtualenvs/JingDaSpider/lib/python3.6/site-packages/scrapyd/default_scrapyd.conf 
#虚拟环境运行scrapyd
#bind_address = 127.0.0.1
bind_address = 0.0.0.0 #外网
# 运行
scrapyd #虚拟环境(/var/project/scrapyd下执行)
spiderkeeper --server=http://0.0.0.0:6800#系统环境
# centos6下查看服务器端口状态(centos6)
/etc/init.d/iptables status 
# 开启5000、6800端口
/sbin/iptables -I INPUT -p tcp --dport 5000 -j ACCEPT    
/sbin/iptables -I INPUT -p tcp --dport 6800 -j ACCEPT    
# 保存修改配置   
/etc/rc.d/init.d/iptables save  
# 重启防火墙 
/etc/init.d/iptables restar
#centos7下设置防火墙
修改usr/bin/firewall-cmd、/usr/sbin/firewalld头中相应python为#!/usr/bin/python2.7
# 查询防火墙规则
firewall-cmd --list-all 
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
systemctl restart firewalld

浏览器访问

Scrapyd.png

SpiderKeeper.png

八、安装supervisor管理服务

supervisor是由python语言的进程管理模块,我们来配置开机supervisor自身自启和服务自启

#因为需要python2的环境,所以用virtualenv创建一下
cd /usr/local/bin
virtualenv --distribute -p /usr/bin/python2.7 supervisor   #创建
cd supervisor source /usr/local/bin/supervisor/bin/activate ./bin/pip install supervisor
#启动 supervisord(通过 -c 选项指定配置文件路径:
supervisord -c /etc/supervisord.conf
#新建一个目录 /etc/supervisor/ 用于存放这些配置文件,相应的,把 /etc/supervisord.conf 里 include 部分的的配置修改一下:
[include] files = /etc/supervisor/*.conf

这块scrapyd.conf问题比较多,尤其是scarpyd走虚拟环境的命令会报各种错,建议参照我写的

scrapyd.conf

#启动 supervisor
supervisord -c /etc/supervisord.conf
#重启 zqxt 程序(项目):
supervisorctl -c /etc/supervisord.conf restart all

命令行:
supervisorctl
自启配置:
注意supervisor命令的位置、建议先find一下,具体内容看下面应用的自启参照

supervisor.png

配置引用:

Python爬虫系列(六):supervisor + scrapyd + spiderkeeper的scrapy部署与管理
https://code.ziqiangxuetang.com/django/django-nginx-deploy.html
使用 supervisor 管理进程
CentOS无桌面环境部署Selenium+Firefox
自启参照
supervisor安装及其配置

小结

上面好多都是参照别的文章的,只是不太记得了引用谁的了,没有写到的话可以联系我添加。
这篇Centos7环境下、基于SipderKeeper 、Scrapyd、Supervisor搭建scrapy运行环境的文章,希望能帮到需要帮助的人。

你可能感兴趣的:(Centos7环境基于SipderKeeper 、Scrapyd、Supervisor搭建scrapy运行环境)