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();
});
分享到:
相关推荐
PhantomJS是一个基于Webkit的无头浏览器,它允许开发者在没有用户界面的情况下运行JavaScript,这对于自动化任务和性能测试来说极其方便。而CasperJS则是一个建立在PhantomJS之上的高级脚本框架,它提供了更易用的...
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...
在"phantomjs+实现代码"这个主题中,我们可以探讨以下几个重要的知识点: 1. **无头浏览器**:无头浏览器是指没有用户界面的浏览器,它们在后台运行,通常用于自动化任务。PhantomJS就是一种无头浏览器,它允许...
CasperJs 是一个基于 PhantomJs 的工具,其比起 PhantomJs 可以更加方便的进行 navigation。 推荐使用PhantomJs1.9版本的 phantomjs和casperjs下载地址,casperjs下载地址,phantomjs下载地址
CasperJS则是一个基于PhantomJS的高级脚本框架,它扩展了PhantomJS的功能,使其更易于编写测试脚本。CasperJS提供了一套友好的API,用于导航、点击、填写表单、检查元素存在性等,使得Web自动化测试变得更加简洁和...
这个小技巧使用的是一种简单的技术:PhantomJS或CasperJS通过captureBase64('png')捕获屏幕,然后将图像发布到接收服务器,然后通过socket.io将其发送到显示的浏览器它是嵌入式图像。 下面是它的工作原理: 设置...
PhantomJS则是一个无头浏览器,它可以全自动化地执行JavaScript,非常适合网页抓取和自动化测试,尤其在处理需要DOM渲染的任务时非常有用。 **PhantomJS模块在Node.js中的集成** `phantom`模块是将PhantomJS集成到...
PhantomJS是一个无头浏览器,它能够在没有用户界面的情况下运行,非常适合于执行JavaScript并获取页面渲染后的结果。在爬虫系统中,PhantomJS被用来加载那些依赖JavaScript的动态网页,确保爬取的数据与用户实际看到...
1. **Selenium**:Selenium 是一个用于Web应用程序测试的工具,但在这里它被用来模拟用户浏览行为。它可以自动控制浏览器,如打开页面、点击链接、填写表单等,这在处理依赖JavaScript动态加载的网页时尤其有用。 2...
PhantomJS是一个基于Webkit内核的无头浏览器,它允许开发者在没有用户图形界面的情况下运行JavaScript代码,广泛应用于自动化测试、网页截图、网络爬虫等领域。标题"phantomjs-2.1.1-windows.zip"表明这是一个针对...
PhantomJS 是一个无头浏览器,它允许你在没有用户界面的情况下运行 Web 页面,非常适合进行自动化测试。安装 PhantomJS 可以通过以下几种方式: 1. **直接下载二进制文件**:访问 PhantomJS 的官方网站,找到对应...
在进行网络爬虫开发时,有时我们需要处理那些依赖JavaScript动态渲染的网页,这时C#结合Selenium与PhantomJS就成为一个有效的解决方案。本文将详细介绍如何在C#环境中利用Selenium WebDriver和PhantomJS来抓取此类...
在本项目实践中,我们探索了如何使用C#.NET框架结合PhantomJS和Selenium构建一个高级的网络爬虫程序,该程序能够处理JavaScript渲染的网页并执行JavaScript代码,从而更全面地获取网络数据。以下是对这个项目的详细...
Findtrip是一个基于Scrapy的机票爬虫,目前整合了国内两大机票网站(去哪儿 + 携程) ## Introduction Findtrip is a webspider for flight tickets by Scrapy,which contains two major china ticket websites ---...
java+phantomjs+echarts导出图片到服务器,包含JAVA测试类,phantomjs 文件,echarts-convert.js
PhantomJS是一个开源的Webkit库,它提供了一个无头浏览器环境,可以在命令行界面下运行JavaScript代码,执行网页自动化任务。这个“phantomjs 2.1.1-windows”版本是专为Windows操作系统设计的,它包含了所有必要的...
PhantomJS是一个无头Webkit浏览器,常用于自动化测试、网页截屏以及生成网页的PDF。在本场景中,`phantomjs`被用来在服务器端生成基于ECharts的图表图像。ECharts是一款由百度开源的JavaScript数据可视化库,它提供...
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是一款基于Webkit内核的无头浏览器,它是一个开源项目,广泛应用于自动化测试、网页截屏、网络监控等多个领域。标题提到的是 PhantomJS 的一个特定版本——2.1.1,针对Windows操作系统。由于官网下载速度较...