Scrapyd 在centos Linux下简单部署Scrapy爬虫

简单介绍

  • Scrapyd是scrapy官方推荐的用来在服务器上部署scrapy的库
  • 官方文档如下:
    https://scrapyd.readthedocs.io/en/stable/
好了下面开始正式部署scrapy,

我的系统环境是redhat(Linux发行版之一和centos操作差不多)

部署之前友情提示一句,千万不要用Python3.7版本的,坑贼多,Twisted pillow等等各种包不兼容, 我用的是Python3.6版本的,源码官方下载地址: https://www.python.org/ftp/python/
scrapy 安装失败时 一般需要手动安装twisted: github地址:https://github.com/twisted/twisted/releases

wget https://github.com/twisted/twisted/releases/TwistedXXX.tar.gz
tar -zxvf TwistedXX.tar.gz   # XXX 指的你选择的版本
cd TwistedXXX.tar.gz
python setup.py install

安装之前可选 安装虚拟环境,参考我这篇博客 https://blog.csdn.net/wgPython/article/details/80691680

  • 一, 安装相关依赖包
# TODO(我用的虚拟环境(如何创建看我前面的博客文章),所以我直接输入pip 或者python都会指向python3)
pip install --upgrade pip   # 首先先更新pip
pip install scrapyd
pip install scrapyd-client
  • 二 修改配置文件

首先修改scrapy配置文件,进入scrapy项目文件夹,能看到配置文件scrapy.cfg修改配置如下

[settings]
default = demo.settings

[deploy:wgPython]   # 这边项目名字随便取
url = http://localhost:6800/  # 这个注释打开6800是后面访问端口,如要修改,scrapyd里面的也要记得一起修改
project = demo

接着修改scrapyd配置文件, 文件名为default_scrapyd.conf

  • 说明一下,scrapyd配置文件可能由于不同的安装可能路径不一样
sudo find / -name default_scrapyd.conf   # 首先知道这个配置文件路径
vim /your_path/default_scrapyd.conf  # vim编辑配置文件

# 下面是编辑配置文件
[scrapyd]
eggs_dir    = eggs
logs_dir    = logs
items_dir   =
jobs_to_keep = 5
dbs_dir     = dbs
max_proc    = 0
max_proc_per_cpu = 10    #可以不改 这个参数和CPU个数的乘积是爬虫同时运行的最多个数 为了以后方便改成10
finished_to_keep = 100   
poll_interval = 5.0
bind_address = 0.0.0.0   # 绑定的IP地址改成0.0.0.0 外网就可以访问
http_port   = 6800   # 这边是对应的端口
debug       = off
runner      = scrapyd.runner
application = scrapyd.app.application
launcher    = scrapyd.launcher.Launcher
webroot     = scrapyd.website.Root

[services]
schedule.json     = scrapyd.webservice.Schedule
cancel.json       = scrapyd.webservice.Cancel
addversion.json   = scrapyd.webservice.AddVersion
listprojects.json = scrapyd.webservice.ListProjects
listversions.json = scrapyd.webservice.ListVersions
listspiders.json  = scrapyd.webservice.ListSpiders
delproject.json   = scrapyd.webservice.DeleteProject
delversion.json   = scrapyd.webservice.DeleteVersion
listjobs.json     = scrapyd.webservice.ListJobs
daemonstatus.json = scrapyd.webservice.DaemonStatus
  • 三 测试启动
    服务器一定要确定开启6800端口, 可以在运营商的控制面板里面开启
# TODO()首先进入scrapy项目文件夹下查看项目是否能正常启动
scrapy list  # 如果有报错缺什么包 可以查看我的之前的博客 
# 上一步正常 可以测试scrapyd 是否正常
scrapyd  # 测试scrapyd开启 务必保证开启6800端口 
# 这一步报错 可以在stackoverflow 上找答案,我之前博客也有相关的答错

这是之前我解决报错的博客传送门点击这里 https://blog.csdn.net/wgPython/article/details/82805406
上面开启正常可以访问 http://你的服务器IP地址:6800/
在这里插入图片描述

OK 到这一部就成功了 一大半,然后可以ctrl + c关掉这个
当然这种方式不是很好,关掉终端,我们scrapyd也GG了, 我们可以后台运行这个scrapyd程序

  • Tip:
    我们启动了scrapyd项目之后占用了6800端口,再次启动就会报端口被占用,这是我们可以用lsof这个来查看项目进程(默认没有安装lsof 需自己手动安装)
lsof -i :6800  # 查看占用此端口的进程
kill -9  进程号 # kill此进程
# 后台启动,我们可以使用Linux命令setsid启动, 
setsid scrapyd
# 也可以使用 nohup scrapyd &等等放后台运行
# 也可以使用 supervisor 管理后台进程
放后台运行管理进程最好使用 supervisor 最方便稳定的,至于使用方法自己搜索吧,也很简单

  • 四, 启动你的项目
# 部署项目, 一个scrapyd可以部署多个scrapy项目
scrapyd-deploy wgPython(部署名)  # wgPython是在scrapy配置文件里面设置的部署名称
# 开启你的爬虫
curl http://localhost:6800/schedule.json -d project=demo(项目名字) -d spider=爬虫名称

到此现在就完成了, 然后暂停什么其他的操作可以查看scrapyd 官方文档的教程。

重点

千万不要对公网开放6800端口,在公网裸奔,一定要加白名单访问
千万不要对公网开放6800端口,在公网裸奔,一定要加白名单访问
千万不要对公网开放6800端口,在公网裸奔,一定要加白名单访问
说三遍,如果对外开放别人可能会用scrapyd 调度任务来植入木马

  • 顺便说一下还有一个spiderkeeper 可视化的界面,个人感觉那个玩意花里胡哨的的,部署起来很麻烦,我反正是不喜欢,爬虫能抓到数据就行了,检测数据量的变化就可以了。
  • scrapyd的简单界面,还行。
  • 最后欢迎提问,有空看到我会解答。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值