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