phantomjs

简介:

phantomjs是一个基于webkit的无头(没有UI界面)浏览器。点击,翻页等人为操作需要开发人员进行程序实现。

相比较selenium,phantomjs对JavaScript的支持具有明显的优势。提供了javascript API接口,通过编写js程序可以直接与webkit内核交互。

具有多种平台的安装包,可以在不同的平台开发进行采集测试等工作。很多爬虫工程师使用phantomJS进行模拟登陆。



demo1:访问网页获取title

//webpage是phantomjs的核心模块之一,它提供给用户访问,操作,选择web文档的接口。

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

//设置编码格式,否则输出可能会乱码

phantom.outputEncoding='gbk';

//第一个参数是你要访问的url,第二个参数是我们能偶检查返回状态的回调函数

//如果我们能成功访问,会打出对应的title信息

page.open("https://www.baidu.com/", function(status) {
    if ( status === "success" ) {
        console.log(page.title);
    } else {
        console.log("Page failed to load.");
    }
    //退出phantomjs的执行环境
   phantom.exit(0);
});

运行结果如下


 结果验证:



demo2:利用cookie登陆并截图

登陆之前的界面

进行人工登陆,获取cookie


var page=require('webpage').create();
//设置图片的大小
page.viewportSize={width:1200,height:800};
var flag = phantom.addCookie({
    "domain":".baidu.com",
    "name":"BDUSS",
    "path":"/",
    "value":"mhCeEl1aFFoNTRWcjI1My1uSUd5NFB3SlZyNXFBV2huUmNmZURxfmxDVmtJMkJiQVFBQUFBJCQAAAAAAAAAAAEAAAA9IKbQ08bTxrzyvPK1pbWlb2sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSWOFtkljhbN"
});
console.log(flag);
if(flag){
    page.open('http://www.baidu.com', function (status) {
        if (status !== 'success') {
            console.log('Unable to load the address!');
            phantom.exit();
        } else {
            window.setTimeout(function () {
                page.render('./baiduLog.png');
                phantom.exit();
            }, 500);
        }
    });
}else{
    console.log('error!');
}


登陆成功的截图如下:

验证成功


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值