记录phantomjs学习(三)

1.测试下加载一个网页的速度,从运行开始计时到页面加载完毕。

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

if(system.args.length==1){
    console.log("no input");
    phantom.exit();
}
t=Date.now();
address=system.args[1];
page.open(address,function(status){
    if(status!=='success'){
        console.log('load fail');
    }else{
        t=Date.now()-t;
        console.log('loading time'+t+'ms');
    }
    phantom.exit();
});

2.从网页抓取一些info,拿百度新闻为例子



var page = require('webpage').create();

page.open('http://news.baidu.com/', function (status) { //打开页面
    if (status !== 'success') {
        console.log('FAIL to load the address');
    } else {
        console.log(page.evaluate(function () {
                var d= ''
                var c = document.querySelectorAll('.hdline1 a')
                var l = c.length;
                for(var i =0;i<l;i++){
                   d=d+c[i].innerText+'\n'
                }
                return d
            }))

    }
    phantom.exit();
});

    命令行输入打印的文本信息保存到工程目录下的222.txt文本中。


  



注意!!


     网页内部的console语句,以及evaluate方法内部的console语句,默认不会显示在命令行。这时可以采用onConsoleMessage回调函数。


     拿下面的例子来说

   

var page = require('webpage').create();

page.onConsoleMessage = function(msg) {
  console.log('Page title is ' + msg);
};

page.open(url, function(status) {
  page.evaluate(function() {
    console.log(document.title);
  });
  phantom.exit();
});
    如果把onConsoleM essage回调函数去掉的话,运行js,控制台上log 是无法显示的。大家可以试下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值