spider_docker
接我上篇博客,為爬蟲引用創建container,包括的模塊:scrapy, mongo, celery, rabbitmq,連接https://github.com/LiuRoy/spider_docker
創建image
進入spider_docker目錄,執行命令:
docker build --rm -t zhihu_spider src/
運行完成后,執行docker iamges
就可以看到生成的image
生成container
在另一個項目zhihu_spider中有一個docker-compose.yml文件,可以參考配置:
dev:
image: zhihu_spider
volumes:
- ./:/zhihu_spider
- ../data:/data/db
ports:
- "20000:27017"
- "20001:15672"
privileged: true
tty: true
stdin_open: true
restart: always
以zhihu_spider為例,進入最上層目錄后,執行docker-compose up
命令。
zhihu_spider目錄映射為docker中的/zhihu_spider,zhihu_spider統計目錄data映射為/data/db用作mongo的數據存儲。container中的mongo范文端口映射到本機的20000,rabbitmq映射為本地的20001端口。
執行爬蟲
執行命令docker exec -it zhihuspider_dev_1 /bin/bash
即可進入bash。
啟動mongo
編輯/etc/mongod.conf文件,將綁定ip地址從127.0.0.0改為0.0.0.0,並重啟mongod進程。k執行下面命令重啟mongo服務
mongod --shutdown
mongod --config /etc/mongod.config
如果要在本機訪問container中的數據,連接配置如下:
ip和port為映射后的ip和port。
啟動rabbitmq
啟動命令如下,訪問方式同mongo
rabbitmq-plugins enable rabbitmq_management
rabbitmq-server &
啟動爬蟲
- 進入zhihu_spider/zhihu目錄,啟動異步任務
celery -A zhihu.tools.async worker --loglevel=info
- 啟動爬蟲
python main.py
結果顯示
篩選出女性,並按關注的人絲數降序排列