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 |
访问速度,稳定性,可扩展性等 |
Base on WebKit |
支持 |
支持 |
Base on WebKit |
访问速度较快,有时程序会crash,支持各种js 框架, 缺点:支持的js有限 |
|
Rhino |
支持 |
支持 |
Firefox or Internet Explorer |
访问速度最快,比较稳定,支持各种js 框架,可以由页面类容模拟url请求. 缺点:支持的js有限 |
|
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){ });
-Cookie:
webClient.getCookieManager().addCookie(cookie); webClient.getCookieManager().getCookies(); webClient.getCookieManager().clearCookies();
-request [received] url:
public static class InterceptWebConnection extends FalsifyingWebConnection{ }
-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); }
相关推荐
CasperJs 是一个基于 PhantomJs 的工具,其比起 PhantomJs 可以更加方便的进行 navigation。 推荐使用PhantomJs1.9版本的 phantomjs和casperjs下载地址,casperjs下载地址,phantomjs下载地址
PhantomJS和CasperJS是两个非常重要的工具,它们在Web自动化、无头浏览器测试以及网页抓取领域中发挥着关键作用。 PhantomJS是一个基于Webkit的无头浏览器,它允许开发者在没有用户界面的情况下运行JavaScript,这...
PhantomJS和CasperJS是两个非常重要的工具,它们在Web自动化测试和无头浏览器场景中扮演着关键角色。这两个工具都是基于WebKit浏览器引擎,但各自有着不同的功能和用途。 PhantomJS是一款开源的无头浏览器,它允许...
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 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-...
在进行网络爬虫开发时,有时我们需要处理那些依赖JavaScript动态渲染的网页,这时C#结合Selenium与PhantomJS就成为一个有效的解决方案。本文将详细介绍如何在C#环境中利用Selenium WebDriver和PhantomJS来抓取此类...
在IT行业中,自动化测试和网页数据抓取是两个重要的领域,而Selenium、PhantomJS以及Python在这两个领域中都扮演着关键角色。本话题主要关注如何利用Selenium结合PhantomJS通过Python来获取HTML动态生成的数据。 ...
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-...
PhantomJS是一个无头浏览器,它能够在没有用户界面的情况下运行,非常适合于执行JavaScript并获取页面渲染后的结果。在爬虫系统中,PhantomJS被用来加载那些依赖JavaScript的动态网页,确保爬取的数据与用户实际看到...
流使用phantomjs和casperjs进行授权接收JavaScript产生的Cookie 使用Cookie的CURL GET请求要求(已通过phantomjs v1.9.8和casperjs v1.1.0-beta3测试) 幻影卡斯珀斯卷曲设置将config.example.json复制到local / ...
这里的"/Users/user/phantomjs/bin/phantomjs"是PhantomJS的可执行文件路径,而"/Users/user/phantomjs/src/run.js"则是我们要执行的JavaScript脚本。`run.js`可能是包含了自动化测试逻辑的文件,例如,它可能使用了...
由于官网下载速度较慢,作者选择了通过其他途径获取这个软件包,可能是通过第三方下载站点或是社区分享,这在资源获取不便时是一种常见的解决方案。 PhantomJS的核心功能包括: 1. **无头浏览**:PhantomJS不依赖...
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.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 应用测试中的应用** 在 IT 领域,自动化测试是提高效率和保证产品质量的重要手段,尤其是在 Web 开发中。卡斯帕杰斯(CasperJS)是一个用于编写功能和验收...
视觉调试PhantomJS / CasperJS 这个小技巧使用的是一种简单的技术:PhantomJS或CasperJS通过captureBase64('png')捕获屏幕,然后将图像发布到接收服务器,然后通过socket.io将其发送到显示的浏览器它是嵌入式图像...
由于其无头特性,即没有用户界面和图形化部分,使得PhantomJS非常适合进行自动化测试、页面批处理、屏幕截图和网络监控等工作。此外,它的JavaScript API可以模拟用户交互,如点击、滚动和表单填充,使得它在Web自动...
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/...
-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 aarch64 组件包,操作如下 1.解压 2.cp -r phantomjs /usr/local/bin/ 3.ln -s /usr/local/bin/phantomjs/bin/phantomjs /usr/bin/ 测试 phantomjs -v