Phantomjs / Casaperjs, HtmlUnit, Selenium 이 자바 script 페이지 를 가 져 올 때 특성 비교
Phantomjs / Casaperjs, HtmlUnit, Selenium 이 자바 script 페이지 를 가 져 올 때 특성 비교
Phantomjs 2.0.0 / Casperjs 1.1.0 - beta 3, Htmlunit 2.18, Selenium 2.47.1 을 기반 으로 자바 script 페이지 를 가 져 올 때 자바 script engine, session / cookie 지원, request url 추적, browser 지원, 방문 속도, 안정성 등에 대해 다음 과 같이 비교 합 니 다.
프레임 / 프로그램 대비 항목
JavaScript engine
Cookie
request [received] url
Browser
접근 속도, 안정성, 확장 성 등
Phantomjs/Casperjs
Base on WebKit
지지 하 다.
지지 하 다.
Base on WebKit
접근 속도 가 빠 르 고 프로그램 이 충돌 할 때 도 있 으 며 각종 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);
}