借助 docker, scrapyd, scrapydweb 部署scrapy项目

借助 docker, scrapyd, scrapydweb 部署scrapy项目

scrapy采集程序开发完毕,难道还命令行启动吗?既然有炫酷的scrapyd的部署服务和scrapyweb这样的可视化界面,抱着学习的态度研究一波。在docker上成功进行了部署。本机局域网的IP为192.168.xx.xx

一. docker 部署 scrapyd

文件准备
	# 目录下的文件
	# 通过docker build 制作镜像
	Dockerfile
	# scrapyd的配置文件
	scrapyd.conf
	# 依赖包,项目会在scrapyd所在环境上运行
	requestments.txt
1. Dockerfile
FROM python:3.8
WORKDIR /code
RUN mkdir ./logs
COPY scrapyd.conf /etc/scrapyd/
COPY requirements.txt .
EXPOSE 6800
RUN pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 默认的logs位置是在 /root/logs; RUN mkdir /root/logs
CMD logparser -dir ./logs & scrapyd
2. scrapyd.conf
[scrapyd]
eggs_dir    = eggs
logs_dir    = logs
items_dir   =
jobs_to_keep = 5
dbs_dir     = dbs
max_proc    = 0
max_proc_per_cpu = 4
finished_to_keep = 100
poll_interval = 5.0
bind_address = 0.0.0.0
http_port   = 6800
username    =
password    =
debug       = off
runner      = scrapyd.runner
jobstorage  = scrapyd.jobstorage.MemoryJobStorage
application = scrapyd.app.application
launcher    = scrapyd.launcher.Launcher
webroot     = scrapyd.website.Root
eggstorage  = scrapyd.eggstorage.FilesystemEggStorage

[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
3. requestments.txt
beautifulsoup4==4.11.1
fake-useragent==0.1.11
lxml==4.8.0
pymongo==3.5.0
PyMySQL==1.0.2
pyquery==1.4.3
python-scrapyd-api==2.1.2
redis==4.3.1
requests==2.27.1
Scrapy==2.6.1
scrapy-redis==0.7.2
Scrapy-Redis-BloomFilter==0.8.1
scrapy-splash==0.8.0
scrapyd==1.3.0
logparser==0.8.2
制作镜像和启动容器
# 制作镜像
docker build -t lpc/scrapyd .
# 启动容器
docker run -d -p 6800:6800 --name scrapyd lpc/scrapyd

scrapyd服务启动成功之后,因为scrapyd.conf的bind设置为0.0.0.0, 访问http://192.168.xx.xx:6800可以看到成功界面, 界面如下:
在这里插入图片描述

二. docker 部署scrapydweb

文件准备
# 制作scrapydweb的镜像
Dockerfile
# scrapydweb 的配置文件,为方便修改,我这次使用了挂载的方式 
# 文件所在目录为 D:/volume/scrapydweb
scrapydweb_settings_v10.py
1. Dockerfile
FROM python:3.8
WORKDIR /code
EXPOSE 5000
RUN pip3 install Werkzeug==2.0.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip3 install scrapydweb==1.4.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
CMD scrapydweb
2. scrapydweb_settings_v10.py

文件就不往上放了,本地pip scrapydweb包,执行scrapydweb,会在当前目录生成该文件。特别的做如下改动

# 声明scrapyd服务所在的位置
SCRAPYD_SERVERS = [
    '192.168.xx.xx:6800'
]
制作镜像和启动容器
# 制作镜像
docker build -t lpc/scrapydweb .
# 启动容器
docker run -d -p 5000:5000 -v D/volume/scrapydweb:/code --name scrapydweb lpc/scrapydweb

通过 192.168.xx.xx 我们可以成功访问到scrapydweb的界面,界面如下:

在这里插入图片描述

三. 额外记录打包命令

我们可以通过scrapydweb界面上进行打包操作,这里不再赘述。此处记录本地项目命令打包

1. 下载打包模块
pip install scrapy-client
2. 修改配置文件

修改scrapy项目路径下的文件 scrapy.cfg

[settings]
default = xxx.settings
[deploy:vm1]
url = http://192.168.xx.xx:6800/
project = xxx
3. 打包给scrapyd服务
scrapyd-deploy vm1 -p xxx
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值