因Scrapy Splash需要使用Docker服务存在,所以需要安装Docker,本次主要为测试使用,文章内容为转载。
开始部署
Docker需要Linux Kernels 大于3.10并且是64-bit的机器,用uname -a可以查看是否符合要求。
执行命令
vim /etc/apt/sources.list.d/backports.list
添加deb http://http.debian.net/debian wheezy-backports main
刷新源apt-get update
删除旧版本Docker
apt-get purge lxc-docker*
apt-get purge docker.io*
apt-get update
- 确认apt添加了https方法和CA cerificates
apt-get install apt-transport-https ca-certificates
- 添加一个新的GPG key
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
- 编辑文件
vim /etc/apt/sources.list.d/docker.list
- 加入下面代码
deb https://apt.dockerproject.org/repo debian-wheezy main
#On Debian Jessie
#deb https://apt.dockerproject.org/repo debian-jessie main
#On Debian Stretch/Sid
#deb https://apt.dockerproject.org/repo debian-stretch main
- 执行
apt-get update
确认正确安装repository
apt-cache policy docker-engine
正式安装
apt-get update
apt-get install docker-engine 。。。。等了很久很久
# 安装结束,打开docker服务
service docker start
# 验证安装,运行测试样例
docker run hello-world
- 正式安装Splash
docker pull scrapinghub/splash
#启动splash服务,并通过http,https,telnet提供服务
#通常一般使用http模式 ,可以只启动一个8050就好
#Splash 将运行在 0.0.0.0 at ports 8050 (http), 8051 (https) and 5023 (telnet).
docker run -p 5023:5023 -p 8050:8050 -p 8051:8051 scrapinghub/splash
服务启动后,打开浏览器输入127.0.0.1:8050查看服务启动情况
Splash使用
- Splash 本身支持进行页面的过滤,具体规则模式和Adblock Plus的规则模式一致,我们可以通过直接下载Adblock Plus的过滤规则来对页面进行过滤,或者为了提高页面的加载和渲染速度,可以通过设定过滤规则来屏蔽一些不想下载的内容,比如图片,视频等。一般可以首先下载Adblock Plus的规则,屏蔽掉广告
#设置一个本地目录映射为docker中 splash的文件目录,用于类似adblock plus的广告过滤
#<my-filters-dir>:是一个本地文件夹,注意这里的本地是宿主哦,不是windows哦
#同时设置adblock过滤器目录为/etc/splash/filters
docker run -p 8050:8050 -v <my-filters-dir>:/etc/splash/filters scrapinghub/splash --filters-path=/etc/splash/filters
以上就是Docker与Splash安装。确保使用最新的系统。