docker+scrapy+redis 爬虫节点
创建scrapy的基础镜像
可以根据自己的实际需求创建一个scrapy镜像,上传到自己的云端或者本地。
以下是我根据自己的场景创建的scrapy的基础镜像
- 拉取 python:3.5镜像
docker pull python:3.5
- 创建scrapy镜像的Dockerfile 内容如下
FROM python:3.5
ADD . /usr/local/lib/python3.5
# 安装自己需要的包
RUN pip install scrapy && pip install pymongo &&\
pip install redis && pip install requests && pip install scrapy-redis
-
创建一个目录我在这里命名为 scrapy-v1
目录里包含 Dockerfile 文件 ,HtmlParser.py util.py 等自己封装的解析文件需要的工具包,生成镜像时添加到python环境中 -
进入scrapy-v1 执行 以下命令
docker build -t scrapy:v1.0 .
根据scrapy基础镜像scrapy:v1.0 创建自己的爬虫项目镜像
- 创建爬虫项目的镜像Dockerfile
FROM scrapy:v1.0
ADD . /work # 添加爬虫项目到镜像中
WORKDIR /work/spider_test/spdider_test/spiders
CMD scrapy runspider test.py
- 生成爬虫项目镜像, 步骤同上
docker build -t myspider:v1.0 -f Dockerfile .
- 运行容器
docker run -d --name master myspider:v1.0
docker run -d --name slaver myspider:v1.0
可以开启多个容器抓取数据实现分布式
当然可以根据scrapy:v1.0 镜像直接运行容器实现多个容器抓取数据
具体操作可以根据自己的实际情况来实现
暂时空白