天天看點

docker 搭建 scrapy 爬蟲節點,實作單個伺服器的分布式

docker+scrapy+redis 爬蟲節點

      • 建立scrapy的基礎鏡像
      • 根據scrapy基礎鏡像scrapy:v1.0 建立自己的爬蟲項目鏡像
      • 當然可以根據scrapy:v1.0 鏡像直接運作容器實作多個容器抓取資料

建立scrapy的基礎鏡像

可以根據自己的實際需求建立一個scrapy鏡像,上傳到自己的雲端或者本地。

以下是我根據自己的場景建立的scrapy的基礎鏡像

  1. 拉取 python:3.5鏡像

    docker pull python:3.5

  2. 建立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
           
  1. 建立一個目錄我在這裡命名為 scrapy-v1

    目錄裡包含 Dockerfile 檔案 ,HtmlParser.py util.py 等自己封裝的解析檔案需要的工具包,生成鏡像時添加到python環境中

  2. 進入scrapy-v1 執行 以下指令

    docker build -t scrapy:v1.0 .

根據scrapy基礎鏡像scrapy:v1.0 建立自己的爬蟲項目鏡像

  1. 建立爬蟲項目的鏡像Dockerfile
FROM scrapy:v1.0
ADD . /work  # 添加爬蟲項目到鏡像中
WORKDIR /work/spider_test/spdider_test/spiders
CMD scrapy runspider test.py
           
  1. 生成爬蟲項目鏡像, 步驟同上

    docker build -t myspider:v1.0 -f Dockerfile .

  2. 運作容器

    docker run -d --name master myspider:v1.0

    docker run -d --name slaver myspider:v1.0

    可以開啟多個容器抓取資料實作分布式

當然可以根據scrapy:v1.0 鏡像直接運作容器實作多個容器抓取資料

具體操作可以根據自己的實際情況來實作

暫時空白