PhantomJS官方网站:
http://phantomjs.org/
API:
https://github.com/ariya/phantomjs/wiki/API-Reference
Doc:
https://github.com/ariya/phantomjs/wiki
CasperJS,基于PhantomJS的
工具包 http://www.cnblogs.com/ziyunfei/archive/2012/09/27/2706254.html
配置: Linux把PhantomJS加入到环境变量,window的直接运行exe文件。
PhantomJS简单教程:
http://javascript.ruanyifeng.com/tool/phantomjs.html(很不错)
NodeJS + PhantomJS 抓取页面信息以及截图
http://www.cnblogs.com/justany/p/3279717.html
PhantomJS1.7 API
http://www.cnblogs.com/ziyunfei/archive/2012/09/28/2705369.html
利用phantomjs+casperjs实现登陆抓取网页并截图
http://my.oschina.net/jiuxiaoyao/blog/148456
利用phantomjs将HTML源代码转换成图片
http://neoremind.net/2013/02/%E5%88%A9%E7%94%A8phantomjs%E5%B0%86html%E6%BA%90%E4%BB%A3%E7%A0%81%E8%BD%AC%E6%8D%A2%E6%88%90%E5%9B%BE%E7%89%87/
PhantomJS是一个无界面的WebKit浏览器引擎,还有配套的JavaScript API.它原生支持各种web标准技术: DOM处理, CSS选择器, JSON, Canvas, 以及SVG.
通常我们的需求是将网页渲染成图片保存,那么也会有这样的情况,将HTML源代码转换成图片,下面的代码将满足需求:
Js代码
/**
* phantomjs /home/pandy/phantomjs/texttoimage.js http://192.168.0.198:8080/dev_cpm/staff/staffHome staffHome
* @type {*}
*/
var webpage = require('webpage');
var system = require('system');
var url=system.args[1];
var fileName=system.args[2];
if(url==undefined){
page.close();
phantom.exit();
}
if(fileName==undefined){
fileName="test";
//page.close();
//phantom.exit();
}
page = webpage.create();
//设定页面载入时候的窗体大小
page.viewportSize = { width: 1366, height: 800 };
//设定截图的区域
page.clipRect = { top: 0, left: 0, width: 1366, height: 800 };
page.settings = {
javascriptEnabled: true,//有时候这个参数会影响截图
loadImages: true,
userAgent: 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) PhantomJS/19.0'
};
page.open(url, function (status) {
var data;
if (status === 'fail') {
console.log('open page fail!');
} else {
page.render('./phantomjs/'+fileName+'.png');
console.log(page.renderBase64());//打印出图片的base64编码
}
page.close();
phantom.exit();
});
保存成texttoimage.js
运行:
phantomjs /home/pandy/phantomjs/texttoimage.js http://192.168.0.198:8080/dev_cpm/staff/staffHome staffHome
图片保存到newimage.png中
一个问题: 有时候设定javascriptEnabled是true的时候,无法截图,还弄不清楚什么原因.
loadspeed.js脚本加载一个特殊的URL (不要忘了http协议) 并且计量加载该页面的时间。
var page = require('webpage').create(),
system = require('system'),
t, address;
if (system.args.length === 1) {
console.log('Usage: loadspeed.js <some URL>');
phantom.exit();
}
t = Date.now();
address = system.args[1];
page.open(address, function (status) {
if (status !== 'success') {
console.log('FAIL to load the address');
} else {
t = Date.now() - t;
console.log('Loading time ' + t + ' msec');
}
phantom.exit();
});
分享到:
相关推荐
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...
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...
你要的,就在这里
CasperJs 是一个基于 PhantomJs 的工具,其比起 PhantomJs 可以更加方便的进行 navigation。 推荐使用PhantomJs1.9版本的 phantomjs和casperjs下载地址,casperjs下载地址,phantomjs下载地址
这个小技巧使用的是一种简单的技术:PhantomJS或CasperJS通过captureBase64('png')捕获屏幕,然后将图像发布到接收服务器,然后通过socket.io将其发送到显示的浏览器它是嵌入式图像。 下面是它的工作原理: 设置...
java+phantomjs+echarts导出图片到服务器,包含JAVA测试类,phantomjs 文件,echarts-convert.js
卡斯帕杰斯使用 PhantomJs 和 CasperJs 测试 Web 应用程序安装 NodeJ 安装 PhantomJS 安装 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...
使用多线程,实现PhantomJs+selenium webdriver+验证码识别模拟登录直播平台,实现自动上号功能。【注:此实例仅供学习之用,若做非法用途,一概与本人无关】
taobaospider 淘宝商品信息爬取 selenium + phantomJS + pyqurey + mongo
利用casperjs +phantomjs实现登录抓取网页 并且截图;下载后解压后,在环境变量path中配置解压后bin目录的地址,如:E:\Program Files\casperjs\bin;E:\Program Files\phantomjs\bin
spring boot + jpa + echarts + phantomjs + 本地保存图片 前提 运行 echarts 源文件 src/java/test/sample/lines example 如LineTest5, git clone 地址: test 环境可以直接展现 html 页面(见 参考1) 项目构建...
phantomjs,所有依赖项都已打包,导入eclipse直接运行
基于PhantomJS 2.0的CasperJS的Docker回购 环境 Ubuntu 14.04 PhantomJS 2.0.0 Casperjs 1.1.0-beta3 用法 运行casperjs命令: docker run hantq/docker-casperjs casperjs --version 运行测试用例: docker ...
phantomjs 安装到 /usr/local/bin,因此需要一次 sudo 来复制下载的二进制文件。 仅在 phantomjs 不存在或安装了不同版本时才执行。用法 - hosts: servers vars: phantomjs_version: "1.9.2" phantomjs_url: ...
该PPT介绍了Python爬虫在爬取动态网页方面会用到的软件PhantomJS, Selenium, 以及AutoIt. 欢迎对爬虫有兴趣的童鞋进行下载哈,本人亲自制作的PPT~~
有些网页数据是由js动态生成的,一般我们抓包可以看出真正的数据实体是由哪一个异步请求获取到的,但是获取数据的请求链接也可能由其他js产生,这个时候我们希望直接拿到js加载后的最终网页数据。 解决方法: ...
Selenium [1] 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。
毕设&课设&项目&实训-基于C#.NET+PhantomJS+Sellenium的高级网络爬虫程序。可执行Javascript代码、触发各类 【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、...