PhantomJS представляет собой скриптовый браузер без графического интерфейса, который можно программировать с использованием JavaScript. Он работает на различных операционных системах, таких как Windows, macOS, Linux и FreeBSD.
Используя QtWebKit в качестве бэк-энда, PhantomJS обеспечивает быструю и нативную поддержку различных веб-стандартов: обработка DOM, CSS-селекторы, JSON, Canvas и SVG.
Например, простой скрипт для PhantomJS может загрузить домашнюю страницу Google, подождать некоторое время и затем сохранить ее в виде изображения. Вот пример такого скрипта:
var page = require('webpage').create();
page.open('http://www.google.com', function() {
setTimeout(function() {
page.render('google.png');
phantom.exit();
}, 200);
});
PhantomJS является оптимальным решением для следующих задач:
- Автоматизация страниц: позволяет получить доступ к веб-страницам и извлекать информацию с использованием стандартного API DOM или обычных библиотек, таких как jQuery.
- Захват экрана: позволяет программно сохранять содержимое веб-страниц, включая SVG и Canvas. Также можно создавать скриншоты веб-сайтов с предварительным просмотром миниатюр.
- Тестирование без графического интерфейса: можно запускать функциональные тесты с использованием различных фреймворков, таких как Jasmine, QUnit, Mocha, WebDriver и т.д.
- Мониторинг сети: позволяет отслеживать загрузку страниц и экспортировать результаты в стандартный формат HAR-файлов. Также можно автоматизировать анализ производительности с использованием YSlow и Jenkins.
Если вы хотите начать работать с PhantomJS, установите его и следуйте инструкциям в руководстве по быстрому старту. Если вы хотите узнать больше, прочитайте FAQ, изучите дополнительные примеры и полную документацию API.
Для получения исходного кода, трекера/issues и других сведений о разработке, посетите github.com/ariya/phantomjs.
PhantomJS распространяется под лицензией BSD (SPDX: BSD-3-Clause).