PhantomJS là một trình duyệt web không có giao diện (headless) có thể lập trình bằng JavaScript. Nó có thể chạy trên các hệ thống như Windows, macOS, Linux và FreeBSD.
Sử dụng QtWebKit làm nền tảng phía sau, PhantomJS cung cấp hỗ trợ nhanh và tự nhiên cho nhiều tiêu chuẩn web: xử lý DOM, CSS selector, JSON, Canvas và SVG.
Một ví dụ về mã lệnh đơn giản cho PhantomJS như sau: nó sẽ tải trang chủ Google, chờ một chút và sau đó chụp lại thành một hình ảnh.
var page = require('webpage').create();
page.open('http://www.google.com', function() {
setTimeout(function() {
page.render('google.png');
phantom.exit();
}, 200);
});
PhantomJS là giải pháp tối ưu cho nhiều mục đích:
- Tự động hóa trang: Có thể truy cập các trang web và trích xuất thông tin bằng cách sử dụng API DOM tiêu chuẩn hoặc các thư viện thông thường như jQuery.
- Chụp màn hình: Có thể chụp nội dung web một cách lập trình, bao gồm SVG và Canvas. Đọc tạo các hình chụp trang web với xem trước nhỏ.
- Kiểm tra trang web không có giao diện: Có thể chạy các bài kiểm tra chức năng với các framework như Jasmine, QUnit, Mocha, WebDriver, v.v.
- Giám sát mạng: Có thể giám sát quá trình tải trang và xuất ra dạng tệp HAR tiêu chuẩn. Đồng thời, tự động phân tích hiệu suất bằng YSlow và Jenkins.
Bạn có thể bắt đầu sử dụng PhantomJS bằng cách cài đặt và theo dõi hướng dẫn Bắt đầu nhanh. Nếu muốn tìm hiểu thêm, bạn có thể đọc phần FAQ, khám phá thêm các ví dụ và nghiên cứu tài liệu API đầy đủ. Để lấy mã nguồn, theo dõi các vấn đề và thông tin phát triển khác, bạn có thể truy cập github.com/ariya/phantomjs.
PhantomJS được phân phối dưới giấy phép BSD (SPDX: BSD-3-Clause) và có sự đóng góp của nhiều người từ năm 2010 đến 2018.