`

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

 

 

 

 

 

 

7
0
分享到:
评论

相关推荐

    phantomjs和casperjs下载地址.zip

    CasperJs 是一个基于 PhantomJs 的工具,其比起 PhantomJs 可以更加方便的进行 navigation。 推荐使用PhantomJs1.9版本的 phantomjs和casperjs下载地址,casperjs下载地址,phantomjs下载地址

    phantomjs + casperjs

    PhantomJS和CasperJS是两个非常重要的工具,它们在Web自动化、无头浏览器测试以及网页抓取领域中发挥着关键作用。 PhantomJS是一个基于Webkit的无头浏览器,它允许开发者在没有用户界面的情况下运行JavaScript,这...

    phantomjs&casperjs

    PhantomJS和CasperJS是两个非常重要的工具,它们在Web自动化测试和无头浏览器场景中扮演着关键角色。这两个工具都是基于WebKit浏览器引擎,但各自有着不同的功能和用途。 PhantomJS是一款开源的无头浏览器,它允许...

    Automating the Web Using PhantomJS and CasperJS

    Learn to use PhantomJS and CasperJS to automate your interaction with the web to perform numerous tasks such as data scraping, network monitoring, page rendering, and browser testing in a programmatic...

    docker-casperjs:基于PhantomJS 2.0的CasperJS的Docker回购

    docker run -v * pwd * /casperjs-test:/home/casperjs-test hantq/docker-casperjs casperjs /home/casperjs-test/sample.js 截屏 docker run -v * pwd * /casperjs-test:/home/casperjs-test hantq/docker-...

    C#使用Selenium+PhantomJS抓取数据

    在进行网络爬虫开发时,有时我们需要处理那些依赖JavaScript动态渲染的网页,这时C#结合Selenium与PhantomJS就成为一个有效的解决方案。本文将详细介绍如何在C#环境中利用Selenium WebDriver和PhantomJS来抓取此类...

    Selenium+PhantomJS+python获取html动态生成的数据

    在IT行业中,自动化测试和网页数据抓取是两个重要的领域,而Selenium、PhantomJS以及Python在这两个领域中都扮演着关键角色。本话题主要关注如何利用Selenium结合PhantomJS通过Python来获取HTML动态生成的数据。 ...

    docker-casperjs:用于casperjs容器的Docker回购

    docker run -v `pwd`/casperjs-files:/home/casperjs-files fprieur/docker-casperjs casperjs /home/casperjs-files/sample.js 截屏 docker run -v `pwd`/casperjs-files:/home/casperjs-files fprieur/docker-...

    基于C#.NET+PhantomJS+Sellenium的高级网络爬虫系统设计与实现

    PhantomJS是一个无头浏览器,它能够在没有用户界面的情况下运行,非常适合于执行JavaScript并获取页面渲染后的结果。在爬虫系统中,PhantomJS被用来加载那些依赖JavaScript的动态网页,确保爬取的数据与用户实际看到...

    phantom-backup:手动从共享主机进行备份不是一种选择。 CURL不用于javascript执行。 使用phantomjs和casperjs进行js执行

    流使用phantomjs和casperjs进行授权接收JavaScript产生的Cookie 使用Cookie的CURL GET请求要求(已通过phantomjs v1.9.8和casperjs v1.1.0-beta3测试) 幻影卡斯珀斯卷曲设置将config.example.json复制到local / ...

    phantomjs自动化测试demo

    这里的"/Users/user/phantomjs/bin/phantomjs"是PhantomJS的可执行文件路径,而"/Users/user/phantomjs/src/run.js"则是我们要执行的JavaScript脚本。`run.js`可能是包含了自动化测试逻辑的文件,例如,它可能使用了...

    phantomjs-2.1.1-windows.zip下载良心2积分

    由于官网下载速度较慢,作者选择了通过其他途径获取这个软件包,可能是通过第三方下载站点或是社区分享,这在资源获取不便时是一种常见的解决方案。 PhantomJS的核心功能包括: 1. **无头浏览**:PhantomJS不依赖...

    06-phantomjs+selenium示例2.py

    06_phantomjs+selenium示例2.py06_phantomjs+selenium示例2.py06_phantomjs+selenium示例2.py06_phantomjs+selenium示例2.py06_phantomjs+selenium示例2.py06_phantomjs+selenium示例2.py06_phantomjs+selenium示例2...

    05-phantomjs+selenium示例1.py

    05_phantomjs+selenium示例1.py05_phantomjs+selenium示例1.py05_phantomjs+selenium示例1.py05_phantomjs+selenium示例1.py05_phantomjs+selenium示例1.py05_phantomjs+selenium示例1.py05_phantomjs+selenium示例1...

    casperjs:使用 PhantomJs 和 CasperJs 测试 Web 应用程序

    **卡斯帕杰斯(CasperJS):PhantomJS 和 CasperJS 在 Web 应用测试中的应用** 在 IT 领域,自动化测试是提高效率和保证产品质量的重要手段,尤其是在 Web 开发中。卡斯帕杰斯(CasperJS)是一个用于编写功能和验收...

    flaming-octo-puss:PhantomJS CasperJS的视觉调试-允许您查看浏览器正在渲染什么

    视觉调试PhantomJS / CasperJS 这个小技巧使用的是一种简单的技术:PhantomJS或CasperJS通过captureBase64('png')捕获屏幕,然后将图像发布到接收服务器,然后通过socket.io将其发送到显示的浏览器它是嵌入式图像...

    phantomjs windows/linux安装版

    由于其无头特性,即没有用户界面和图形化部分,使得PhantomJS非常适合进行自动化测试、页面批处理、屏幕截图和网络监控等工作。此外,它的JavaScript API可以模拟用户交互,如点击、滚动和表单填充,使得它在Web自动...

    wydomain目标子域名信息收集组件

    wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.8-linux-i686.tar.bz2 tar vxf phantomjs-1.9.8-linux-i686.tar.bz2 yum install openssl-devel freetype-devel fontconfig-devel cp ./bin/...

    apple-membercenter-expires:Apple 会员中心到期

    -devel Linux wget tar -xvf phantomjs-1.9.7-linux-x86_64.tar.bz2 须藤 mv phantomjs-1.9.7-linux-x86_64 /usr/local/src/phantomjs 须藤 ln -sf /usr/local/src/phantomjs/bin/phantomjs /usr/local/bin/...

    phantomjs.zip

    phantomjs aarch64 组件包,操作如下 1.解压 2.cp -r phantomjs /usr/local/bin/ 3.ln -s /usr/local/bin/phantomjs/bin/phantomjs /usr/bin/ 测试 phantomjs -v

Global site tag (gtag.js) - Google Analytics