zoukankan      html  css  js  c++  java
  • python3 scrapy+Crontab部署过程

    背景

    最近有时间想学习下python3+scrapy,于是决定写一个小程序来练练手。

    开发环境:MacOS High Sierra(10.13.1)+python3+scrapy。

    开发工具:PyCharm。

    开发过程很简单按照网上的例子可以很好的开发完成。具体为采集新闻网站新闻。

    部署

    生产环镜:CentOS7.4+Python3.6

    由于是在Python3上开发的,所以在部署的过程中遇到很多问题,本文就不在记录那些坑了。

    直接记录我的方案:在虚拟环境中运行scrapy。

    1、首先安装Python3、pip3。这个是基础。可以直接从官网上下载安装。

    # python -V    # 查看python 版本
    # cd /home/centos/Downloads    # 进入存放目录
    # wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz    # 获取新版的 python
    # tar xvf Python-3.6.1.tar.xz    # 解压文件
    # cd ./Python-3.6.1     # 进入解压后的文件目录
    # mkdir /usr/local/python3    # 创建编译安装目录
    # ./configure --prefix=/usr/local/python3    # 配置编译安装目录
    # make && make install    # 编译安装
    

    2、安装Python3虚拟环境(虚拟环境可以与真实环镜完全分离开,不受python2相关影响。

    python虚拟环境说明

    #定位到python程序目录
    cd /data/application/python3
    #安装虚拟环境包
    pip3 install virtualenv
    #创建python3虚拟环境(虚拟环境为目录:python3env)
    virtualenv  -p python3 --no-site-packages python3env
    #进入指定环镜
    source python3env/bin/activate
    #退出环镜
    deactivate
    

    3、虚拟环境安装相关包

    # 安装Twisted
    wget https://pypi.python.org/packages/a2/37/298f9547606c45d75aa9792369302cc63aa4bbcf7b5f607560180dd099d2/Twisted-17.9.0.tar.bz2#md5=6dbedb918f0c7288a4c670f59393ecf8
    tar -xjvf Twisted-17.9.0.tar.bz2
    cd Twisted-17.9.0
    python3 setup.py install
    # 安装scrapy
    pip3 install scrapy
    #其他的包就自行安装吧....
    

    4、启动程序

    #定位目录
    cd /data/application/python3
    #进入python3虚拟环境
    source python3env/bin/activate
    #定位程序目录
    cd news_spiders/news/spiders/
    #执行scrapy,采集数据 sina为我开发的蜘蛛的名称,使用时换成自己的蜘蛛名称
    scrapy crawl sina
    #退出环镜
    deactivate
    

    升级:每次想执行一次脚本比较麻烦还需要切换虚拟环境,于下我写了以下脚本。每次直接执行脚本即可。

    脚本:/data/application/python3/news_spiders/run.sh

    source ../python3env/bin/activate
    scrapy crawl $1
    deactivate
    

    于是每次执行的脚本就简单了许多:

    cd /data/application/python3/news_spiders/
    #sina为蜘蛛的名称
    ./run.sh sina
    

    5、定时执行

    简单点采用Linux定时任务Crontab来执行脚本。

    Linux定时任务Crontab命令详解

    #编辑cron文件,我使用root用户。
    vim /var/spool/cron/root
    

    /var/spool/cron/root文件内容如下:

    MAILTO=""
    10 * * * * cd /data/application/python3/news_spiders/ && ./run.sh sina
    40 * * * * cd /data/application/python3/news_spiders/ && ./run.sh baidu
    

    注:直接执行/data/application/python3/news_spiders/run.sh sina会报错,会提示找不到crawl。因为我的scrapy.cfg文件在news_spiders目录下。所以需要定位到news_spiders目录。

  • 相关阅读:
    让某个软件无法被操作员最小化(C#演示)
    SharpGL学习笔记(四) 正射投影
    SharpGL学习笔记(三) 投影变换和视点变换
    盈动线性绝对值编码器(光栅尺)的测试记录
    用基恩仕7060激光测试电池宽度信息
    在winform上内嵌入其它的程序
    AD采样模块采集带模拟量真空表值的实验
    SharpGL学习笔记(二) 模型变换(几何变换)
    git add 错误修改方法
    Reactjs 的 PropTypes 使用方法
  • 原文地址:https://www.cnblogs.com/pengei/p/8044075.html
Copyright © 2011-2022 走看看