scrapy-splash的docker部署

381 阅读1分钟

Scrapy-Splash是通过渲染js得到动态网页的库,一般用来爬取动态网页,使用的是webkit开发的轻量级无界面浏览器,渲染之后结果和静态爬取一样可以直接用xpath处理,这里主要介绍下如何配置在docker中部署。

一、docker安装 参考:docs.docker.com/engine/inst… 或者 curl -fsSL get.docker.com -o get-docker.sh sh get-docker.sh

安装完docker -v查看版本,看到版本说明安装成功

二、修改下默认路径,因为docker默认存在/var/lib/docker,但是系统目录如果不大的话建议换个大点的目录

service docker status

查看docker服务路径

● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)

编辑文件

vi /lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd  -H fd:// --containerd=/run/containerd/containerd.sock

这条命令后面追加参数

ExecStart=/usr/bin/dockerd  -H fd:// --containerd=/run/containerd/containerd.sock --graph /data/docker

重启docker服务

service docker restart

换成新的目录了

三、下载scrapy-splash 可以用dock pull scrapinghub/splash拉取镜像,下载比较慢,如果之前有save过镜像的话也可以docker load < scrapinghub_splash.tar 开启容器

docker run -p 8050:8050 scrapinghub/splash

scrapy-splash容器内的时区是UTC,如果要改成北京时间的话,进到container里执行

echo "TZ='Asia/Shanghai'; export TZ" >> /root/.profile source /root/.profile echo "Asia/Shanghai" > /etc/timezone rm /etc/localtime

docker cp /usr/share/zoneinfo/Asia/Shanghai container_id:/etc/localtime