美文网首页
Centos7环境基于SipderKeeper 、Scrapyd

Centos7环境基于SipderKeeper 、Scrapyd

作者: 安安汐而 | 来源:发表于2018-09-07 14:53 被阅读0次

    一、系统环境:

       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

          本文链接:https://www.haomeiwen.com/subject/ckrcgftx.html