PhantomJS是一款可通过JavaScript进行脚本编写的无头浏览器。目前其开发已暂停,具体恢复时间有待进一步通知。它能在Windows、macOS、Linux以及FreeBSD等系统上运行。
其以QtWebKit作为后端,对诸多网页标准提供了快速且原生的支持,比如DOM处理、CSS选择器、JSON、Canvas以及SVG等。
举个简单例子,以下这段PhantomJS脚本可以加载谷歌首页,稍作等待后,将其捕获为一张图片。
var page = require('webpage').create();
page.open('http://www.google.com', function() {
setTimeout(function() {
page.render('google.png');
phantom.exit();
}, 200);
});
PhantomJS在以下方面堪称绝佳解决方案:
网页自动化:可借助标准DOM API或者像jQuery这类常用库来访问网页并提取信息。
屏幕捕获:能以编程方式捕获网页内容,包括SVG和Canvas,还可创建带有缩略图预览的网站截图。
无头网站测试:可利用诸如Jasmine、QUnit、Mocha、WebDriver等框架来运行功能测试。
网络监测:能够监测页面加载情况,并导出为标准HAR文件,还可结合YSlow和Jenkins实现自动化性能分析。
若你准备好使用PhantomJS,可安装并遵循快速入门指南。要是想了解更多内容,可以阅读常见问题解答、查看更多示例以及研究完整的API文档。如需获取源代码、问题追踪器以及其他开发相关信息,请访问github.com/ariya/phantomjs。
请注意,PhantomJS遵循BSD许可证(SPDX:BSD-3-Clause),版权归2010 - 2018年的PhantomJS贡献者所有。