phantomjs爬虫在docker下不能正常运行的问题

2 篇文章 0 订阅
1 篇文章 0 订阅

版权声明:可以任意转载,转载时请标明文章原始出处-xjtushilei和作者信息:石磊

背景

和北京xx教育合作的知识图谱项目,因为xx升级了docker镜像的管理,撤掉了之前的docker,导致服务全部瘫痪。虽然立马就锁定了问题,还是记录一下吧,省的所有在centos下进行爬虫的人debug时候找不到原因。

phantomjs

一个基于webkit内核的无头浏览器,即没有UI界面,即它就是一个浏览器,只是其内的点击、翻页等人为相关操作需要程序设计实现。

提供javascript API接口,即通过编写js程序可以直接与webkit内核交互,在此之上可以结合java语言等,通过java调用js等相关操作,从而解决了以前c/c++才能比较好的基于webkit开发优质采集器的限制。

提供windows、linux、mac等不同os的安装使用包,也就是说可以在不同平台上二次开发采集项目或是自动项目测试等工作。

它将非常方便的应用于模拟登陆,如微博、电商类,或是小米、火车票抢票等项目中,下一步计划将其与上述项目结合,开发更有意思的项目。

官网

http://phantomjs.org/

下载与安装

我附个图片算啦,支持各大平台和各种语言。

下载与安装

下载与安装

一般情况下,大家都是只下载了驱动器,没有注意到有些linux环境是没有一些依赖的。比如我的ubuntu是有这些依赖的,但是docker的centos7里是没有的,这就是一个坑。

所以,解决办法就是:

RUN yum install -y fontconfig

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Docker运行 PhantomJS 脚本,首先需要一个包含 PhantomJSDocker 镜像。可以通过拉取一个已经包含了 PhantomJS 的基础镜像来使用,或者自己创建一个 Dockerfile 来构建一个新的镜像。 以下是使用 Docker 运行 PhantomJS 脚本的基本步骤: 1. 创建一个 Dockerfile 来定义你的镜像,如果需要的话。如果你选择的是一个已经包含了 PhantomJS 的镜像,则可以跳过这一步。 ``` # 示例 Dockerfile FROM node:latest RUN npm install -g phantomjs-prebuilt ``` 2. 构建 Docker 镜像。在 Dockerfile 所在的目录下,运行以下命令来构建镜像。 ``` docker build -t phantomjs-script . ``` 这里的 `phantomjs-script` 是你给镜像起的名字,`.` 表示 Dockerfile 在当前目录下。 3. 创建一个包含你的 PhantomJS 脚本的文件,例如 `script.js`。 4. 运行 Docker 容器,并将你的脚本挂载到容器内,这样容器就可以执行你的脚本了。 ``` docker run --rm -v $(pwd)/script.js:/script.js phantomjs- `--rm` 选项会在脚本执行完毕后自动删除容器。 - `-v $(pwd)/script.js:/script.js` 选项将当前目录下的 `script.js` 文件挂载到容器内的 `/script.js` 路径。 - `phantomjs-script` 是你之前构建的包含 PhantomJS 的镜像名称。 - `phantomjs /script.js` 是在容器内执行 PhantomJS 的命令,`/script.js` 是容器内挂载的脚本文件路径。 5. 如果你想要容器持续运行,以便可以重复运行脚本或其他命令,可以去掉 `--rm` 参数。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值