python3 scrapy+Crontab部署过程

背景

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

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

开发工具:PyCharm。shell

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

部署

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

因为是在Python3上开发的,因此在部署的过程当中遇到不少问题,本文就不在记录那些坑了。centos

直接记录个人方案:在虚拟环境中运行scrapy。app

一、首先安装Python三、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    # 编译安装

二、安装Python3虚拟环境(虚拟环境能够与真实环镜彻底分离开,不受python2相关影响。

python虚拟环境说明scrapy

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

三、虚拟环境安装相关包

# 安装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
#其余的包就自行安装吧....

四、启动程序

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

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

脚本:/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

五、定时执行

简单点采用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目录。

相关文章
相关标签/搜索