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!');
}


登陆成功的截图如下:

验证成功


发布了14 篇原创文章 · 获赞 0 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览