首页 技术 正文
技术 2022年11月15日
0 收藏 537 点赞 2,749 浏览 2327 个字

Scrapyd是一个用于部署和运行Scrapy项目的工具,有了它,你可以将写好的Scrapy项目上传到云主机并通过API来控制它的运行。

既然是Scrapy项目部署,基本上都使用Linux主机,所以本节的安装是针对于Linux主机的。

1. 相关链接

2. pip安装

这里推荐使用pip安装,命令如下:

pip3 install scrapyd

3. 配置

安装完毕之后,需要新建一个配置文件/etc/scrapyd/scrapyd.conf,Scrapyd在运行的时候会读取此配置文件。

在Scrapyd 1.2版本之后,不会自动创建该文件,需要我们自行添加。

首先,执行如下命令新建文件:

sudo mkdir /etc/scrapydsudo vi /etc/scrapyd/scrapyd.conf

接着写入如下内容:

[scrapyd]eggs_dir    = eggslogs_dir    = logsitems_dir   =jobs_to_keep =dbs_dir     = dbsmax_proc    =max_proc_per_cpu =finished_to_keep =poll_interval = 5.0bind_address = 0.0.0.0http_port   =debug       = offrunner      = scrapyd.runnerapplication = scrapyd.app.applicationlauncher    = scrapyd.launcher.Launcherwebroot     = scrapyd.website.Root[services]schedule.json     = scrapyd.webservice.Schedulecancel.json       = scrapyd.webservice.Canceladdversion.json   = scrapyd.webservice.AddVersionlistprojects.json = scrapyd.webservice.ListProjectslistversions.json = scrapyd.webservice.ListVersionslistspiders.json  = scrapyd.webservice.ListSpidersdelproject.json   = scrapyd.webservice.DeleteProjectdelversion.json   = scrapyd.webservice.DeleteVersionlistjobs.json     = scrapyd.webservice.ListJobsdaemonstatus.json = scrapyd.webservice.DaemonStatus

配置文件的内容可以参见官方文档https://scrapyd.readthedocs.io/en/stable/config.html。这里的配置文件有所修改,其中之一是max_proc_per_cpu官方默认为4,即一台主机每个CPU最多运行4个Scrapy任务,在此提高为10。另外一个是bind_address,默认为本地127.0.0.1,在此修改为0.0.0.0,以使外网可以访问。

4. 后台运行

Scrapyd是一个纯Python项目,这里可以直接调用它来运行。为了使程序一直在后台运行,Linux和Mac可以使用如下命令:

(scrapyd > /dev/null &)

这样Scrapyd就会在后台持续运行了,控制台输出直接忽略。当然,如果想记录输出日志,可以修改输出目标,如:

(scrapyd > ~/scrapyd.log &)

当然也可以使用screen、tmux、supervisor等工具来实现进程守护。

运行之后,便可以在浏览器的6800端口访问Web UI了,从中可以看到当前Scrapyd的运行任务、日志等内容,如图所示。

当然,运行Scrapyd更佳的方式是使用Supervisor守护进程,如果感兴趣,可以参考:http://supervisord.org/

另外,Scrapyd也支持Docker,后面我们会介绍Scrapyd Docker镜像的制作和运行方法。

5. 访问认证

配置完成后,Scrapyd和它的接口都是可以公开访问的。如果想配置访问认证的话,可以借助于Nginx做反向代理,这里需要先安装Nginx服务器。

在此以Ubuntu为例进行说明,安装命令如下:

sudo apt-get install nginx

然后修改Nginx的配置文件nginx.conf,增加如下配置:

http {    server {        listen ;        location / {            proxy_pass    http://127.0.0.1:6800/;            auth_basic    "Restricted";            auth_basic_user_file    /etc/nginx/conf.d/.htpasswd;        }    }}

这里使用的用户名和密码配置放置在/etc/nginx/conf.d目录下,我们需要使用htpasswd命令创建。例如,创建一个用户名为admin的文件,命令如下:

htpasswd -c .htpasswd admin

接着就会提示我们输入密码,输入两次之后,就会生成密码文件。此时查看这个文件的内容:

cat .htpasswdadmin:5ZBxQr0rCqwbc

配置完成后,重启一下Nginx服务,运行如下命令:

sudo nginx -s reload

这样就成功配置了Scrapyd的访问认证了。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,028
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,518
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,365
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,146
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,780
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,858