PhantomJS参考文档文档格式.docx

上传人:b****2 文档编号:13343074 上传时间:2022-10-09 格式:DOCX 页数:8 大小:14.60KB
下载 相关 举报
PhantomJS参考文档文档格式.docx_第1页
第1页 / 共8页
PhantomJS参考文档文档格式.docx_第2页
第2页 / 共8页
PhantomJS参考文档文档格式.docx_第3页
第3页 / 共8页
PhantomJS参考文档文档格式.docx_第4页
第4页 / 共8页
PhantomJS参考文档文档格式.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

PhantomJS参考文档文档格式.docx

《PhantomJS参考文档文档格式.docx》由会员分享,可在线阅读,更多相关《PhantomJS参考文档文档格式.docx(8页珍藏版)》请在冰豆网上搜索。

PhantomJS参考文档文档格式.docx

add(1,2)

按ctrl+c可以退出该环境。

下面,我们把上面的add()函数写成一个文件add.js文件。

//add.js

functionadd(a,b){returna+b;

console.log(add(1,2));

phantom.exit();

上面的代码中,console.log()的作用是在终端窗口显示,phantom.exit()则表示退出phantomjs环境。

一般来说,不管什么样的程序,这一行都不能少。

现在,运行该程序:

$phantomjsadd.js

终端窗口就会显示结果为3。

下面是更多的例子。

phantom.version

{

"

major"

:

1,

minor"

5,

patch"

0

}

console.log("

phantomisawesome"

phantomisawesome

window.navigator

cookieEnabled"

true,

language"

en-GB"

productSub"

20030107"

product"

Gecko"

//...

基本用法

加载网页

下面,我们用PhantomJS加载网页。

新建一个文本文件page.js,写入下面的代码:

//page.js

varpage=require('

webpage'

).create();

page.open('

http:

//slashdot.org'

function(s){

console.log(s);

phantom.exit();

});

第一行require('

).create()表示加载网页模块,并创建一个实例。

第二行open()方法,接受两个参数。

第一个参数是网页的网址,这里我们打开的是著名新闻网站Slashdot,第二个参数是回调函数,当网页打开后,该函数将会运行,它的参数是状态提示(status),如果打开成功,该参数的值就是success。

运行page.js,屏幕将会显示success。

执行代码

打开网页以后,可以使用page实例的evaluate方法,在页面中执行代码。

page.open(url,function(status){

vartitle=page.evaluate(function(){

returndocument.title;

});

console.log('

Pagetitleis'

+title);

网页内部的console语句,以及evaluate方法内部的console语句,默认不会显示在命令行。

这时可以采用onConsoleMessage回调函数,上面的例子可以改写如下。

page.onConsoleMessage=function(msg){

+msg);

};

page.evaluate(function(){

console.log(document.title);

上面代码中,evaluate方法内部有console语句,默认不会输出在命令行。

这时,可以用onConsoleMessage方法监听这个事件,进行处理。

加载资源

如果网页实例向远程服务器请求资源,这时HTTP请求(request)和HTTP回应可以用onResourceRequested和onResourceReceived追踪。

page.onResourceRequested=function(request){

Request'

+JSON.stringify(request,undefined,4));

page.onResourceReceived=function(response){

Receive'

+JSON.stringify(response,undefined,4));

page.open(url);

上面代码会以JSON格式,输出所有HTTP请求和HTTP回应的头信息。

page实例的includeJs方法,用于页面加载外部脚本。

'

function(){

page.includeJs("

//path/to/jquery.min.js"

$("

button"

).click();

phantom.exit()

上面的例子在页面中注入jQuery脚本,然后点击所有的按钮。

需要注意的是,由于是异步加载,所以phantom.exit()语句要放在page.includeJs()方法的回调函数之中,否则页面会过早退出。

接受参数

修改page.js,使得它可以从命令行接受参数。

system模块可以加载操作系统变量,system.args就是参数数组。

).create(),

system=require('

system'

),

t,address;

//如果命令行没有给出网址

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

Usage:

page.js<

someURL>

);

t=Date.now();

address=system.args[1];

page.open(address,function(status){

if(status!

=='

success'

){

FAILtoloadtheaddress'

}else{

t=Date.now()-t;

Loadingtime'

+t+'

ms'

使用方法如下:

phantomjspage.js

应用

Phantomjs可以实现多种应用。

过滤资源

处理页面的时候,有时不希望加载某些特定资源。

这时,可以对URL进行匹配,一旦符合规则,就中断对资源的连接。

page.onResourceRequested=function(requestData,request){

if((/http:

\/\/.+?

\.css$/gi).test(requestData['

url'

])){

Skipping'

requestData['

]);

request.abort();

}

上面代码一旦发现加载的资源是CSS文件,就会使用request.abort方法中断连接。

截图

最简单的生成网页截图的方法如下。

function(){

page.render('

google.png'

page对象代表一个网页实例;

open方法表示打开某个网址,它的第一个参数是目标网址,第二个参数是网页载入成功后,运行的回调函数;

render方法则是渲染页面,然后以图片格式输出,该方法的参数就是输出的图片文件名。

除了简单截图以外,还可以设置各种截图参数。

page.zoomFactor=0.25;

console.log(page.renderBase64());

zoomFactor表示将截图缩小至原图的25%大小;

renderBase64方法则是表示将截图(PNG格式)编码成Base64格式的字符串输出。

下面的例子则是使用了更多参数。

page.settings.userAgent='

WebKit/534.46Mobile/9A405Safari/7534.48.3'

;

page.settings.viewportSize={width:

400,height:

600};

function(status){

Unabletoload!

vartitle=page.evaluate(function(){

varposts=document.getElementsByClassName("

article"

posts[0].style.backgroundColor="

#FFF"

window.setTimeout(function(){

page.clipRect={top:

0,left:

0,width:

600,height:

700};

page.render(title+"

1.png"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 育儿理论经验

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1