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运行环境的文章,希望能帮到需要帮助的人。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354