`

1. 一个无界浏览器内核: PhantomJS + CasperJS

 
阅读更多
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 + casperjs

    PhantomJS是一个基于Webkit的无头浏览器,它允许开发者在没有用户界面的情况下运行JavaScript,这对于自动化任务和性能测试来说极其方便。而CasperJS则是一个建立在PhantomJS之上的高级脚本框架,它提供了更易用的...

    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...

    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...

    phantomjs+实现代码

    在"phantomjs+实现代码"这个主题中,我们可以探讨以下几个重要的知识点: 1. **无头浏览器**:无头浏览器是指没有用户界面的浏览器,它们在后台运行,通常用于自动化任务。PhantomJS就是一种无头浏览器,它允许...

    phantomjs和casperjs下载地址.zip

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

    phantomjs&casperjs

    CasperJS则是一个基于PhantomJS的高级脚本框架,它扩展了PhantomJS的功能,使其更易于编写测试脚本。CasperJS提供了一套友好的API,用于导航、点击、填写表单、检查元素存在性等,使得Web自动化测试变得更加简洁和...

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

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

    Node.js-phantom-用于集成PhantomJS的NodeJS模块

    PhantomJS则是一个无头浏览器,它可以全自动化地执行JavaScript,非常适合网页抓取和自动化测试,尤其在处理需要DOM渲染的任务时非常有用。 **PhantomJS模块在Node.js中的集成** `phantom`模块是将PhantomJS集成到...

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

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

    taobaospider:淘宝商品信息爬取:selenium + phantomJS + pyqurey + mongo

    1. **Selenium**:Selenium 是一个用于Web应用程序测试的工具,但在这里它被用来模拟用户浏览行为。它可以自动控制浏览器,如打开页面、点击链接、填写表单等,这在处理依赖JavaScript动态加载的网页时尤其有用。 2...

    phantomjs-2.1.1-windows.zip

    PhantomJS是一个基于Webkit内核的无头浏览器,它允许开发者在没有用户图形界面的情况下运行JavaScript代码,广泛应用于自动化测试、网页截图、网络爬虫等领域。标题"phantomjs-2.1.1-windows.zip"表明这是一个针对...

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

    PhantomJS 是一个无头浏览器,它允许你在没有用户界面的情况下运行 Web 页面,非常适合进行自动化测试。安装 PhantomJS 可以通过以下几种方式: 1. **直接下载二进制文件**:访问 PhantomJS 的官方网站,找到对应...

    人工智能-项目实践-C#-基于C#.NET+PhantomJS+Sellenium的高级网络爬虫程序 可执行Javascript

    在本项目实践中,我们探索了如何使用C#.NET框架结合PhantomJS和Selenium构建一个高级的网络爬虫程序,该程序能够处理JavaScript渲染的网页并执行JavaScript代码,从而更全面地获取网络数据。以下是对这个项目的详细...

    计算机毕业设计:Python+去哪儿携程机票爬虫

    Findtrip是一个基于Scrapy的机票爬虫,目前整合了国内两大机票网站(去哪儿 + 携程) ## Introduction Findtrip is a webspider for flight tickets by Scrapy,which contains two major china ticket websites ---...

    java+phantomjs+echarts导出图片到服务器.zip

    java+phantomjs+echarts导出图片到服务器,包含JAVA测试类,phantomjs 文件,echarts-convert.js

    phantomjs 2.1.1-windows版

    PhantomJS是一个开源的Webkit库,它提供了一个无头浏览器环境,可以在命令行界面下运行JavaScript代码,执行网页自动化任务。这个“phantomjs 2.1.1-windows”版本是专为Windows操作系统设计的,它包含了所有必要的...

    C#使用Selenium+PhantomJS抓取数据

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

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

    PhantomJS是一款基于Webkit内核的无头浏览器,它是一个开源项目,广泛应用于自动化测试、网页截屏、网络监控等多个领域。标题提到的是 PhantomJS 的一个特定版本——2.1.1,针对Windows操作系统。由于官网下载速度较...

    phantomjs2.0

    PhantomJS是一个基于Webkit内核的无头浏览器,它允许开发者通过JavaScript接口来控制浏览器进行自动化测试、网页截图、网络监控等各种任务。在标题和描述中提到的"phantomjs2.0"指的是该软件的第二个主要版本。在这...

Global site tag (gtag.js) - Google Analytics