Scrapyd部署

作者: 鲁智深 分类: Python,scrapy 发布时间: 2019-09-24 16:04

Scrapyd 是一个server,是scrapy官方推荐的部署管理spider的服务,以及通过http json控制spider。

首先先安装scrapyd

scrapyd的安装必须在能运行scrapy项目的虚拟环境中

1
pip install scrapyd

运行Scrapyd

1
scrapyd

2019-09-24T15:11:05+0800 [-] Loading /home/atguigu/Envs/crawler-PlsRPGJ5/lib/python3.6/site-packages/scrapyd/txapp.py…
2019-09-24T15:11:05+0800 [-] Scrapyd web console available at http://127.0.0.1:6800/
2019-09-24T15:11:05+0800 [-] Loaded.
2019-09-24T15:11:05+0800 [twisted.scripts._twistd_unix.UnixAppLogger#info] twistd 19.7.0 (/home/atguigu/Envs/crawler-PlsRPGJ5/bin/python3.6 3.6.8) starting up.
2019-09-24T15:11:05+0800 [twisted.scripts._twistd_unix.UnixAppLogger#info] reactor class: twisted.internet.epollreactor.EPollReactor.
2019-09-24T15:11:05+0800 [-] Site starting on 6800
2019-09-24T15:11:05+0800 [twisted.web.server.Site#info] Starting factory
2019-09-24T15:11:05+0800 [Launcher] Scrapyd 1.2.1 started: max_proc=16, runner=’scrapyd.runner’

启动了Scrapyd,发现Scrapyd是一个服务器,那我们需要一个Scrapyd-client客户端发送爬虫代码到Scrapyd服务中去。

这里先修改一下Scrapyd服务地址,默认scrapyd启动是通过scrapyd就可以直接启动,bind绑定的ip地址是127.0.0.1端口是:6800,这里为了其他主机可以访问,需将ip地址设置为0.0.0.0

即将

1
bind_address = 127.0.0.1

改为

1
bind_address = 0.0.0.0

scrapyd的配置文件(pipenv环境路径)

1
/home/atguigu/Envs/crawler-PlsRPGJ5/lib/python3.6/site-packages/scrapyd

访问地址

1
http://192.168.153.166:6800/

这样我们就可以在其他主机通过浏览器访问了

安装scrapyd-client

有了scrapyd服务,下面就要用scrapyd-client打包scrapy成egg文件发送到scrapyd服务中。

1
pip install scrapyd-client

无需在虚拟环境中,任何环境下安装即可,只是负责打包的任务

首先cd进入项目的根目录,然后可以使用以下内容部署项目:测试运行

1
scrapyd-deploy

返回 Unknown target: default

部署项目

检查配置, 列出当前可用的服务器

1
scrapyd-deploy -l

xinchen_server http://localhost:6800/

列出服务器上所有的项目, 需要确保服务器上的scrapyd命令正在执行,否则会报连接失败.首次运行的话,可以看到只有一个default项目

1
2
$ scrapyd-deploy -L xinchen_server
default

打开http://localhost:6800/, 可以看到Available projects: default

打包你的当前项目

1
scrapyd-deploy xinchen_server -p xinchen

我们也可以把项目信息写入到配置文件中,部署时就不用指定项目信息,编辑scrapy.cfg文件,添加项目信息

1
2
3
4
5
6
7
[settings]
default = xinchen.settings

[deploy:xinchen_server]
url = http://localhost:6800/
username = root
password =

下次部署可以直接执行

1
scrapyd-deploy

运行爬虫

1
curl http://localhost:6800/schedule.json -d project=xinchen -d spider=douban_film_comment

停止爬虫

1
curl http://localhost:6800/cancel.json -d project=xinchen -d job=94bd8ce041fd11e6af1a000c2969bafd

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注