美文网首页Python爬虫程序员
Docker上封装scrapy-redis爬虫,架设到云服务器上

Docker上封装scrapy-redis爬虫,架设到云服务器上

作者: 开飞机的贝吉塔 | 来源:发表于2017-06-14 15:36 被阅读267次

    需求

    • 编写了一个scrapy-redis爬虫想要封装在docker中
    • 云服务器上架设redis服务,爬虫可以使用redis来调度(服务器同时作为master和slave)

    具体实施

    云服务器环境准备

    操作场景:云服务器

    安装redis

    • 安装redis服务端并启动(redis-server)

        sudo apt-get update
        sudo apt-get install redis-server
        nohup redis-server &
      
    • 检测redis是否启动成功(redis-cli)

        ps -ef |grep redis
      
    • redis conf配置修改,bind本地ip和内网段IP

        vi /etc/redis/redis.conf
      

    • bind 127.0.0.1 10.11.1.100
      
    • 重启redis服务

        sudo service redis-server restart
      
    • 使用redis-cli本地连接运行

        redis-cli
        keys *
      

    本地docker镜像安装

    操作场景:本地服务器

    在爬虫目录下创建Dockerfile

    vi Dockerfile
    

    FROM python:2.7-onbuild
    RUN pip install -r requirements.txt
    ENTRYPOINT ["scrapy"]
    CMD ["crawl", "spider1"]
    

    在该目录下创建docker镜像

    docker build -t spiderdocker:1 .
    

    docker images查看镜像

    docker images
    

    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    spiderdocker        1                   00d299391ce        2 hours ago         781MB
    

    镜像保存为1.tar,上传到云服务器上

    docker save -o 1.tar
    scp 1.tar root@云服务器ip:/docker
    

    爬虫镜像导入并启动

    操作场景:云服务器

    • 镜像导入

        docker load < 1.tar
      
    • 正常启动不带参数(默认的为运行spider1爬虫)

        docker run spiderdocker:1 
      
    • 正常启动带参数(这里表示运行spider2爬虫)

        docker run spiderdocker crawl spider2
      
    • 后台启动(默认的为运行spider1爬虫)

        docker run -d spiderdocker:1
      
    • 后台启动带参数(这里表示运行spider2爬虫)

        docker run -d spiderdocker:1 crawl spider2
      
    • 查看运行的容器

        docker ps -a
      
    • 爬虫镜像启动后,爬虫就会去redis队列消费任务了,此时需要做的就是将爬虫任务投放给redis了

    知识点(坑)

    1. redis配置文件中bind,在云服务器上必须设置为云服务器的内网ip或者0.0.0.0,否则docker中的爬虫无法连接到,至于安全问题,可以通过设置redis用户名密码或者防火墙规则去规避
    2. 已经生成的docker镜像文件不要随便删除,以方便之后修改完代码重新生成镜像时可以从本地直接拉取

    相关文章

      网友评论

      本文标题:Docker上封装scrapy-redis爬虫,架设到云服务器上

      本文链接:https://www.haomeiwen.com/subject/dxzsqxtx.html