Splash 提供的 Web 页面输入网址无法渲染问题解决

刚开始接触Splash,按照崔庆才老师的《Python3网络爬虫开发实战》中提供的方法,使用docker拉取镜像安装,然后启动,访问localhost:8050,一切都很美好。

docker pull scrapinghub/splash
docker run -d -p 8050:8050 scrapinghub/splash

但是通过 Splash 提供的 Web 页面来测试其渲染过程时,一直渲染不出来,打开控制台发现是jquery和bootstrap资源没有正确加载造成的,如下图所示:


image.png

解决思路:
由于该问题是资源加载不成功导致的,那么我们把这几个不能访问的资源替换成可以访问的地址就可以了,步骤如下:
首先,github上下载splash源码,全局搜索jquery、jquery-migrate、bootstrap,定位到引用位置在splash/resources.py中。
然后,百度搜索相同版本的cdn资源,替换掉这几个链接。
最后,返回项目根目录,编辑一下Dockfile为:

FROM scrapinghub/splash
COPY . /app

然后执行docker build -t your-awsome-name/splash:v1 .构建你自己的镜像,停止官方镜像创建的容器,使用自己的镜像启动容器

docker run -d -p 8050:8050 your-awsome-name/splash:v1

搞定。

你可能感兴趣的:(Splash 提供的 Web 页面输入网址无法渲染问题解决)