首页 > 编程语言 > 详细

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

时间:2015-11-29 02:05:56      阅读:531      评论:0      收藏:0      [点我收藏+]
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);
	            }

?

?

?

?

?

?

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

原文:http://ucstudio.iteye.com/blog/2259941

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!