概述
基于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页面时特性对比的全部内容,希望文章能够帮你解决Phantomjs/Casperjs, HtmlUnit, Selenium在获取Javascript页面时特性对比所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复