Scrapyd安装

网友投稿 576 2022-05-30

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

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

相关链接

GitHub:https://github.com/scrapy/scrapyd

PyPi:https://pypi.python.org/pypi/scrapyd

官方文档:https://scrapyd.readthedocs.io

pip 安装

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

1

pip3 install scrapyd

配置

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

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

执行命令新建文件:

1

2

sudo mkdir /etc/scrapyd

sudo vi /etc/scrapyd/scrapyd.conf

写入如下内容:

1

2

3

4

5

Scrapyd 的安装

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

[scrapyd]

eggs_dir = eggs

logs_dir = logs

items_dir =

jobs_to_keep = 5

dbs_dir = dbs

max_proc = 0

max_proc_per_cpu = 10

finished_to_keep = 100

poll_interval = 5.0

bind_address = 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

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

后台运行

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

1

(scrapyd > /dev/null &)

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

1

(scrapyd > ~/scrapyd.log &)

则会输出 Scrapyd 运行输出到~/scrapyd.log 文件中。

运行之后便可以在浏览器的 6800 访问 WebUI 了,可以简略看到当前 Scrapyd 的运行 Job、Log 等内容,如图所示:

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

访问认证

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

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

1

sudo apt-get install nginx

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

1

2

3

4

5

6

7

8

9

10

http {

server {

listen 6801;

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 的文件,命令如下:

1

htpasswd -c .htpasswd admin

接下就会提示我们输入密码,输入两次之后,就会生成密码文件,查看一下内容:

1

2

cat .htpasswd

admin:5ZBxQr0rCqwbc

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

1

sudo nginx -s reload

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

Nginx

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:干货三:CountDownTimer倒计时工具类
下一篇:APP性能测试工具——GT 使用方法
相关文章