资讯专栏INFORMATION COLUMN

Python爬虫之用supervisor使scrapy在服务器后台运行

Turbo / 1698人阅读

摘要:折腾原因之前都是远程连接服务器,然后在命令行运行,一旦关闭远程连接,爬虫就会停止,很不爽,毕竟能让一个爬虫在服务器一直跑才是每个小白的梦想,所以开始研究如何使程序在后台运行,刚开始看了,感觉不好用,又搜了搜,发现了这个进程管理程序。

折腾原因

之前都是远程连接服务器,然后在命令行运行scrapy crawl spider,一旦关闭远程连接,爬虫就会停止,很不爽,毕竟能让一个爬虫在服务器一直跑才是每个小白的梦想= =,所以开始研究如何使程序在后台运行,刚开始看了scrapyd,感觉不好用,又搜了搜,发现了supervisor这个python进程管理程序。

supervisor简介

Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。

安装supervisor

我的系统是centos7所以运行以下命令

# yum install supervisor

等待安装完后,进入/ect目录,主要看如下两个文件。

supervisord.conf为主配置文件,可以打开看一下,不用更改,supervisord.d为子进程的配置文件夹,存放在这里的配置文件在程序启动后会自动读取该文件夹下的文件,我们进入这个文件夹,创建一个子进程文件,名为awesome.ini,内容如下:

[program:awesome]

command     = shell.py
directory   = /python/scrapy
user        = root
startsecs   = 3

redirect_stderr         = true
stdout_logfile_maxbytes = 50MB
stdout_logfile_backups  = 10
stdout_logfile          = /log/app.log

说明:
command:为要后台运行的shell命令
directory:指定command命令要执行的文件夹
user:执行命令的用户
stdout_logfile:程序运行的日志,报错可以在这里看。
创建好子进程文件后,运行如下命令解锁程序:

# sudo unlink /run/supervisor.sock

再运行以下命令运行程序启动爬虫:

# supervisord

运行成功会有如下提示:

/usr/lib/python2.7/site-packages/supervisor/options.py:296: UserWarning: Supervisord is running 
as root and it is searching for its configuration file in default locations (including it
s current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
  "Supervisord is running as root and it is searching "
进程管理的相关命令

1) 查看所有子进程的状态:

# supervisorctl status

awesome                             RUNNING    pid 2395, uptime 0:08:41

2)关闭、开启指定的子进程:

# supervisorctl stop zhoujy
awesome: stopped

3)关闭、开启所有的子进程:

# supervisorctl stop all
awesome: stopped
# supervisorctl start all
awesome: started
总结

终于可以愉快的爬虫了呢!OvO

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42760.html

相关文章

  • Python3网络爬虫实战---12、部署相关库的安装:Docker、Scrapyd

    摘要:阿里云安装脚本安装脚本两个脚本可以任选其一,速度都非常不错。推荐的加速器有和阿里云。阿里云不同平台的镜像加速方法配置可以参考的官方文档。以上便是的安装方式说明。上一篇文章网络爬虫实战爬虫框架的安装下一篇文章网络爬虫实战部署相关库 上一篇文章:Python3网络爬虫实战---11、爬虫框架的安装:ScrapySplash、ScrapyRedis下一篇文章:Python3网络爬虫实战---...

    ityouknow 评论0 收藏0
  • 学会了这项技能,你就能获得任何想要的信息!

    摘要:环境准备任务时间前置环境部署在开始部署前,我们需要做一些前置准备。此时输入并回车,应该可以看到类似下面这样的输出,说明一切正常。完成后,可以通过快捷键或命令行键入来退出,进入下一步。 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云实验室发表于云+社区专栏 腾讯云提供了开发者实验室教你搭建 PySpider 爬虫服务,教程内容如下,用户可以点击开发者实验室快速...

    chenatu 评论0 收藏0
  • 网络爬虫介绍

    摘要:什么是爬虫网络爬虫也叫网络蜘蛛,是一种自动化浏览网络的程序,或者说是一种网络机器人。 什么是爬虫 网络爬虫也叫网络蜘蛛,是一种自动化浏览网络的程序,或者说是一种网络机器人。它们被广泛用于互联网搜索引擎或其他类似网站,以获取或更新这些网站的内容和检索方式。它们可以自动采集所有其能够访问到的页面内容,以供搜索引擎做进一步处理(分检整理下载的页面),而使得用户能更快的检索到他们需要的信息。简...

    sf190404 评论0 收藏0
  • CentOS7之Scrapy爬虫部署

    摘要:安装配置文件内容如下守护进程,用这个的原因实在是因为太脆弱了,一看不住就挂了安装配置导入默认配置链接管理设置管理进程启动创建文件内容如下启动查看如一切正常常用命令查看状态重新载入重启任务可以更新配置检查日志爬虫部署部署项目目录 scrapyd 安装: sudo pip install scrapyd 配置: #文件~/.scrapyd.conf #内容如下: [scrapyd] egg...

    elisa.yang 评论0 收藏0
  • CentOS7之Scrapy爬虫部署

    摘要:安装配置文件内容如下守护进程,用这个的原因实在是因为太脆弱了,一看不住就挂了安装配置导入默认配置链接管理设置管理进程启动创建文件内容如下启动查看如一切正常常用命令查看状态重新载入重启任务可以更新配置检查日志爬虫部署部署项目目录 scrapyd 安装: sudo pip install scrapyd 配置: #文件~/.scrapyd.conf #内容如下: [scrapyd] egg...

    scq000 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<