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程序目录
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来执行脚本。
#编辑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目录。
python3 scrapy+Crontab部署过程的更多相关文章
- 1.Python3.6环境部署
标题:Python3.6环境部署文档 作者:刘耀 内容 Linux部署Python3.6环境 Mac部署Python3.6环境 Window10部署Python3.6环境 Pycharm安装 1. L ...
- Python3 Scrapy 安装方法
Python3 Scrapy 安装方法 (一脸辛酸泪) 写在前面 最近在学习爬虫,在熟悉了Python语言和BeautifulSoup4后打算下个爬虫框架试试. 没想到啊,这坑太深了... 看了看相关 ...
- python3.6环境部署文档
python3.6环境部署文档 内容 Linux部署Python3.6环境 Mac部署Python3.6环境 Window10部署Python3.6环境 Pycharm安装 1. Linux部署P ...
- django+uWSGI+nginx的工作原理流程与部署过程
django+uWSGI+nginx的工作原理流程与部署过程 一.前言 知识的分享,不应该只是展示出来,还应该解释这样做是为什么... 献给和我一样懵懂中不断汲取知识,进步的人们. 授人与鱼,不如授人 ...
- hudson部署过程
hudson部署过程: java安装 http://developer.51cto.com/art/201504/470683.htm tomcat安装 http://blog.csdn.net/hu ...
- SCCM 2012 R2安装部署过程和问题(三)
上篇 SCCM 2012 R2安装部署过程和问题(二) 个人认为对于使用SCCM 2012的最重要的经验是耐心. SCCM采用分布式部署的架构,不同的站点角色可以部署在不同的服务器上,站点角色之间的通 ...
- SCCM 2012 R2安装部署过程和问题(二)
上篇:SCCM 2012 R2安装部署过程和问题(一) 在上篇我们已经完成了SCCM 2012 R2安装前的准备,其中有许多细节,关于数据库的准备和权限的设置是需要特别注意的.那么接下来我们开始安装S ...
- SCCM 2012 R2安装部署过程和问题(一)
在进行Windows Server 2012 R2虚拟化测试前,由于需要安装,部署和管理很多的服务器,自然会想到该如何提高效率和有效的管理.在Windows Server 2008的时代微软已经提供称 ...
- BeX5平台简明部署过程
http://wex5.com/cn/concise-deployment/ BeX5平台简明部署过程 该文章主要介绍BeX5平台开发完成后,资源部署至正式环境的过程. 一. 获取BeX5企业快速开发 ...
随机推荐
- VS2012环境下C#调用C++生成的DLL
1.VS2012 C++生成DLL 这个过程仿照http://www.cnblogs.com/LCCRNblog/p/3625200.html创建DLL即可,暂时不用创建测试工程,因为下面有测试工程的 ...
- ACM课程总结
当我还是一个被P哥哥忽悠来的无知少年时,以为编程只有C语言那么点东西,半个学期学完C语言的我以为天下无敌了,谁知自从有了杭电练习题之后,才发现自己简直就是渣渣--咳咳进入正题: STL篇: 成长为一名 ...
- instanceof 原理
运行流程 function instance_of(L, R) { //L 表示左表达式,R 表示右表达式 var O = R.prot ...
- PHP面向对象摘要
一.面向对象的三种特性,分别是封装性,继承性和多态性. 1.封装性:封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体的实现细节,这就是封装思想. 2.继承性:继承性主要是描述 ...
- EasyUI扩展验证
1.首先在jquery.easyui.min.js下最后插入下面代码 $.extend($.fn.validatebox.defaults.rules, { idcard : {// 验证身份证 va ...
- tomcat不编译webapps下的war包的解决办法
1.首先看看tomcat是否能正常启动,如果启动tomcat一闪而过那么就使用dos命令启动tomcat看看报什么错 如果是端口占用的错误.使用netstat -ano命令查看占用端口的程序 然后用任 ...
- Asp.Net Core API网关Ocelot
首先,让我们简单了解下什么是API网关? API网关是一个服务器,是系统的唯一入口.从面向对象设计的角度看,它与外观模式类似.API网关封装了系统内部架构,为每个客户端提供一个定制的API.它可能还具 ...
- Python - SIP参考指南 - 介绍
介绍 本文是SIP4.18的参考指南.SIP是一种Python工具,用于自动生成Python与C.C++库的绑定.SIP最初是在1998年用PyQt开发的,用于Python与Qt GUI toolki ...
- 分享一个单例模型类Singleton代码
相关代码: ; foreach (string key in dict.Keys) { if (cou ...
- 《天书夜读:从汇编语言到windows内核编程》六 驱动、设备、与请求
1)跳入到基础篇的内核编程第7章,驱动入口函数DriverEnter的返回值决定驱动程序是否加载成功,当打算反汇编阅读驱动内核程序时,可寻找该位置. 2)DRIVER_OBJECT下的派遣函数(分发函 ...