学习PhantomJS笔记

由于需要利用phantomJS模拟浏览器执行JS,在采集页面,学习phantomJS,边学习边做一下笔记,留作以后查看。

1.下载phantomJS

下载链接:http://phantomjs.org/download.html

可以下载不同的版本,这里下载Windows版本:phantomjs-2.1.1-windows

2.解压


3.参考官网的QuickStart学习

下面的例子也可以直接用examples下的js文件

新建一个文件夹,命名test,

第一个例子:下面新建一个文件,命名为hello.js,内容包含下面两行

console.log('Hello, world!');
phantom.exit();
然后在命令行执行


输出了 Hello,world!

官网解释:第一行console.log('Hello, world!');是打印功能,类似System.out

第二行是调用phantomJS.exit(),这一步是必须的且重要的,否则phantomJS不会终止。

第二个例子:页面加载

通过创建一个webpage对象,可以对页面加载、分析、渲染

下面学习加载百度首页,并且保存在一个图片

新建baiduload.js文件,包含以下内容

var page = require('webpage').create();
page.open('http://baidu.com.cn', function(status) {
  console.log("Status: " + status);
  if(status === "success") {
    page.render('../test/baidu.png');
  }
  phantom.exit();
});

在命令行中执行:

在test路径下可以看到,说明上述js执行成功了,继续

由于phantomJS的render功能,phantomJS可以进行网页捕获,类似截图

新建一个loadspeed.js内容包含:

var page = require('webpage').create(),
  system = require('system'),
  t, address;

if (system.args.length === 1) {
  console.log('Usage: loadspeed.js <some URL>');
  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 ' + system.args[1]);
    console.log('Loading time ' + t + ' msec');
  }
  phantom.exit();
});
在命令行执行:如果不传任何参数(默认长度是1,具体参数的情况可以参考 http://blog.csdn.net/xm_zhou/article/details/38278595


传入一个url参数:

第三个例子:

新建一个displaytitle.js文件,内容包含:

var page = require('webpage').create();
var url = "http://phantomjs.org/quick-start.html";
page.open(url, function(status) {
  var title = page.evaluate(function() {
    return document.title;
  });
  console.log('Page title is ' + title);
  phantom.exit();
});
在命令行执行:

打印出页面的title了

从webpage包括内部的代码,例如evaluate()默认是不显示打印信息的,如果要想显示,需要回调onConsoleMessage,

上面的例子就改为:

var page = require('webpage').create();
page.onConsoleMessage = function(msg) {
  console.log('Page title is ' + msg);
};
var url = "http://phantomjs.org/quick-start.html";
page.open(url, function(status) {
  page.evaluate(function() {
    console.log(document.title+"----------------");
  });
  phantom.exit();
});

网页请求和响应

在命令行中执行 netlog.js

后面再继续学习如何模拟登录,模拟点击

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值