Phantomjs/Casperjs, HtmlUnit, Selenium在获取Javascript页面时特性对比

Phantomjs/Casperjs, HtmlUnit, Selenium在获取Javascript页面时特性对比

基于Phantomjs 2.0.0/Casperjs 1.1.0-beta3, Htmlunit 2.18, Selenium 2.47.1,在获取Javascript 页面时,对JavaScript engine,session/cookie支持, request url追踪, browser支持,以及访问速度,稳定性等方面进行对比如下:

 

 

框架/程序

对比项目

JavaScript engine

Cookie

request 

[received] 

url

Browser

访问速度,稳定性,可扩展性等

Phantomjs/Casperjs

Base on WebKit

支持

支持

Base on 

WebKit

访问速度较快,有时程序会crash,支持各种js 框架,

缺点:支持的js有限

HtmlUnit

Rhino

支持

支持

Firefox or Internet Explorer

访问速度最快,比较稳定,支持各种js 框架,可以由页面类容模拟url请求缺点:支持的js有限

Selenium

Most engine

支持

不支持

Most Browsers

访问速度太慢,速度也不稳定,而且带有UI,想跨平台必须使用RemoteWebDriver,优点: 支持大部分浏览器

 

 

 

 

`

 

 示例代码:

Phantomjs / Casperjs

-Cookie:

 

 

var fs = require('fs');
if(fs.isFile(cookieFile)) {
        phantom.cookies = JSON.parse(fs.read(cookieFile));
}

var cookies = JSON.stringify(phantom.cookies);
fs.write(cookieFile, cookies, 644);

 

-request [received] url:

 

 

casper.on("resource.requested", function(resource){
});

 

 

HtmlUnit

-Cookie:

 

 

webClient.getCookieManager().addCookie(cookie);
webClient.getCookieManager().getCookies();
webClient.getCookieManager().clearCookies();

 

 

-request [received] url:

 

public static class InterceptWebConnection extends FalsifyingWebConnection{
}

 

Selenium

-Cookie:

 

WebDriver driver = ...;
for (Cookie ck : driver.manage().getCookies()) {
		       
		        	javax.servlet.http.Cookie generateCookie = new javax.servlet.http.Cookie(ck.getName(), ck.getValue());
		        	generateCookie.setMaxAge(3600); 
		        	response.addCookie(generateCookie);
	            }

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值