搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 京东云 > 新手入门 | 如何快速使用PhantomJS

新手入门 | 如何快速使用PhantomJS

京东云 2017-11-30

PhantomJS是一个基于webkit的Javascript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。你能理解它是个没有界面的浏览器,不仅支持Web标准、Dom操作,同时也提供处理文件I/O的操作。PhantomJS的用处十分广泛,网络监测、网页截屏、无需浏览器的 Web 测试、页面访问自动化等统统都可以用到它,和Selenium配合就可以抓取异步加载的网页内容了~接下来一起看看在京东云上如何快速使用吧。



一、安装


创建完云主机后,我们可以从官方下载二进制文件直接安装,根据不同的开发平台选择不同的包。




二、快速使用


到这里,可以开始我们的第一个PhantomJS程序了。编写第一个程序,当然是Hello World.新建文件helloworld.js,敲入以下代码,Ctrl+S保存:

console.log('Hello,world!');

phantom.exit();

命令行输入:

phantomjshelloworld.js

输出结果为:Hello,World!  在这里,phantom.exit();终止了 phantom 的执行,这句话切记不可漏,否则程序将永不会停止。


PhantomJS单独使用的场景不是很多,主要作为一个前端测试的组件用。我们先来看看PhantomJS的核心API


webpage:它的作用主要是提供了一套可以访问和操作web文档的核心方法,包括操作DOM、事件捕获、用户事件模拟等等。


system:该模块提供了一些与操作系统相关的接口,例如访问操作系统信息、访问系统环境变量、接受命令行参数等等与程序执行相关的系统信息。


fs:即FileSystem。熟悉NodeJS的朋友都知道,NodeJS也内建了相关的核心模块。fs提供了执行文件I/O操作的标准接口,如读写文件、删除文件等。它使得你持久化一些文件(如logfile等)变得非常容易。


webserver:如其名字一样,你可以基于它来实现自己的webserver,用来处理请求并且执行PhantomJS代码等。

 

我们先来试试页面加载 – Page Loading


通过创建一个网页对象,一个网页可以被加载,分析和渲染。下面的脚本将示例页面对象最简单的用法,它加载 example.com 并且将它保存为一张图片,example.png 。

varpage = require('webpage').create();

page.open('http://example.com',function () {

page.render('example.png');

phantom.exit();

});


可以看到,由于它的这个特性,PhantomJS 可以用来网页截屏 ,截取一些内容的快照,比如将网页、SVG存成图片,PDF等。


接下来的 loadspeed.js 脚本加载一个特殊的URL (不要忘了http协议) 并且计量加载该页面的时间。

varpage = require('webpage').create(),

 system = require('system'),

 t, address;

 

if(system.args.length === 1) {

 console.log('Usage: loadspeed.js <someURL>');

 phantom.exit();

}

 

t= Date.now();

address= system.args[1];

page.open(address,function (status) {

 if (status !== 'success') {

  console.log('FAIL to load the address');

 } else {

  t = Date.now() - t;

  console.log('Loading time ' + t + ' msec');

 }

 phantom.exit();

});


在命令行运行该脚本:

phantomjsloadspeed.js http://www.google.com


它将输出像下面的东西:

Loadinghttp://www.google.com Loading time 719 msec


以上就是如何快速使用PhantomJS,篇幅有限,本期我们仅简单介绍了页面加载这一项操作,还有关于网络监听、代码运算、事件处理等各项操作,之后的几期我们会慢慢道来。点击【阅读原文】动手试试看吧!




往期回顾







关注京东云畅享云计算

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《新手入门 | 如何快速使用PhantomJS》的版权归原作者「京东云」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注京东云微信公众号

京东云微信公众号:JD-jcloud

京东云

手机扫描上方二维码即可关注京东云微信公众号

京东云最新文章

精品公众号随机推荐