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是一款开源的无头浏览器,它允许...
在进行网络爬虫开发时,有时我们需要处理那些依赖JavaScript动态渲染的网页,这时C#结合Selenium与PhantomJS就成为一个有效的解决方案。本文将详细介绍如何在C#环境中利用Selenium WebDriver和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-...
在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