分布式主要通过scrapyd⼯工具来部署,scrapyd是⼀一个运⾏行行Scrapy爬⾍虫的服务程序,它提供⼀一 系列列HTTP接⼝口来帮助我们部署、启动、停⽌止、删除爬⾍虫程序。
Scrapyd⽀支持版本管理理,同时可以管理理多个爬⾍虫任务,利利⽤用它我们可以⾮非常⽅方便便地完成 Scrapy爬⾍虫项⽬目的部署任务调度。如果同时将⼀一个Scrapy项⽬目部署到100台服务器器上,我们需要⼿手 动配置每台服务器器的Python环境,更更改Scrapyd配置吗?如果这些服务器器的Python环境是不不同版 本,同时还运⾏行行其他的项⽬目,⽽而版本冲突⼜又会造成不不惜要的麻烦。所以我将Scrapyd直接打包成⼀一个 Docker镜像,那么在服务器器上只需要执⾏行行Docker命令就可以启动Scrapyd服务,这样就不不⽤用关⼼心 Python环境问题,也不不需要担⼼心版本冲突问题。 备注:后⾯面我只是介绍⼀一下配置步骤,具体服务镜像我已经配置完成并放到DockerHub上了了,新机 器器只需要安装Docker并运⾏行行⼀一下命令即可安装Scrapyd服务,步骤如下:
1、docker login后会提示输⼊入⽤用户名和密码 user: ******
psd: ******
2、docker pull qinexpire/scrapyd
3、docker run -d -p 6800:6800 qinexpire/scrapyd
如何将Scrapyd打包制作成⼀一个Docker镜像? 1、Install Docker
2、新建⼀一个项⽬目,新建⼀一个scrapyd.conf,即Scrapyd的配置⽂文件,内容如下: [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
debug
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
= 6800 = off
= scrapyd.runner
Scrapyd制作Docker镜像的步骤
此处只修改了了bind_address = 0.0.0.0,原本是127.0.0.1,不不能公开访问,这⾥里里修改为0.0.0.0即可接触
此限制 3、新建⼀一个requirements.txt⽂文件,将⼀一些Scrapy项⽬目常⽤用的库放进去
request selenium aiohttp beautifulsoup4 pyquery pymysql pymongo redis
flask
django
scrapy scrapyd scrapyd-client scrapy-redis scrapy-splash
如果运⾏行行的Scrapy项⽬目还需要其他库,可以⾃自⾏行行添加
4、新建⼀一个Dockerfile,内容如下: FROM python:3.6
ADD . /code
WORKDIR /code
COPY ./scrapyd.conf /etc/scrapyd/ EXPOSE 6800
RUN pip3 install -r requirements.txt CMD scrapyd
Scrapyd批量量部署三种⽅方案: 1、按照上⾯面介绍的⽅方式安装docker之后执⾏行行相应命令 2、镜像部署
3、模板部署
Gerapy分布式可视化管理理:
具体安装使⽤用教程可以参考下⾯面链接:https://blog.csdn.net/fengltxx/article/details/ 79894839
Scrapyd制作Docker镜像的步骤
最新推荐文章于 2024-06-23 11:51:42 发布