Установка и начало работы с Phantomjs и CasperJS в CentOS8
PhantomJS – программа эмулирующая браузер в консоли. Позволяет работать с движком WebKit с поддержкой JavaScript.
CasperJS – вспомогательный инструмент написанный на JavaScript как обертка PhantomJS.
Установка Phantomjs
# yum install fontconfig
# yum install bzip2
На сайте phantomjs.org, на странице https://phantomjs.org/download.html находим ссылку на архив с программой
Скачиваем архив в директорию /usr/src/
Распаковываем архив и удаляем его потом.
# cd /usr/src/
# tar xvjf phantomjs-2.1.1-linux-x86_64.tar.bz2
# rm -f phantomjs-2.1.1-linux-x86_64.tar.bz2
Делаем символьную ссылку на исполняемый файл:
# ln -s /usr/src/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/
Проверка весрии Phantomjs
# phantomjs -v
2.1.1
Установка Casperjs
# cd /usr/src
# git clone -b master git://github.com/n1k0/casperjs.git
# cd casperjs
# ln -sf `pwd`/bin/casperjs /usr/local/bin/casperjs
casperjs требует Python
Устанавливаем третью версию Python
# yum install python3
Делаем символьную ссылку
# ln -s /usr/bin/python3 /usr/bin/python
Теперь casperjs работает и показывает свою версию:
# casperjs --version
1.1.4
Использование Phantomjs.
Программа Phantomjs работает с файлами javascript кода.
Пример:
# cd ~
Создаем файл для проверки hellophantomjs.js:
# touch hellophantomjs.js
Код:
console.log('Hello, world!');
phantom.exit();
Запускаем этот файл на исполнение командой phantomjs
# phantomjs hellophantomjs.js
Если будет сделан следующий вывод, значит phantomjs работает нормально.
Hello, world!
Использование Casperjs.
Программа Casperjs так же работает с файлами javascript кода.
Создадим файл получения скриншота сайта http://myttk.ru на casperjs:
# touch screencasper.js
Код:
var casper = require('casper').create({
verbose: true,
logLevel: 'debug',
pageSettings: {
userAgent: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36'
}
});
casper.options.viewportSize = {width: 1280, height: 1024};
casper.start("http://myttk.ru");
casper.then(function() {
casper.capture("screen.png");
});
casper.run();
Запуск:
# casperjs screencasper.js
В каталоге откуда запускалась команда будет сгенерирован файл скриншота сайта - screen.png.
Базовые конструкции для работы с Casperjs:
Проход авторизации Apache
var url = "http://xxx.ru"
var login = "mylogin"
var password = "mypassword"
casper.then(function() {
casper.thenOpen(url);
casper.setHttpAuth(login, password);
});
Кликнуть по ссылке с неким ID в DOM
var but_id = "xxxx";
casper.thenClick('#'+but_id );
Вывод сообщения в консоль:
casper.echo('Сообщение в консоль');
Запись содержимого некого тега в файл:
var fs = require('fs');
casper.then(function() {
this.echo('Приступаем к копированию данных элемента с ID=DATA_TABLE в файл');
var table = casper.evaluate(function(){
var table = document.querySelector('#DATA_TABLE').innerHTML;
return table;
});
fs.write(outputFile, table, 'w');
});
PhantomJS – программа эмулирующая браузер в консоли. Позволяет работать с движком WebKit с поддержкой JavaScript.
CasperJS – вспомогательный инструмент написанный на JavaScript как обертка PhantomJS.
Установка Phantomjs
# yum install fontconfig
# yum install bzip2
На сайте phantomjs.org, на странице https://phantomjs.org/download.html находим ссылку на архив с программой
Скачиваем архив в директорию /usr/src/
Распаковываем архив и удаляем его потом.
# cd /usr/src/
# tar xvjf phantomjs-2.1.1-linux-x86_64.tar.bz2
# rm -f phantomjs-2.1.1-linux-x86_64.tar.bz2
Делаем символьную ссылку на исполняемый файл:
# ln -s /usr/src/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/
Проверка весрии Phantomjs
# phantomjs -v
2.1.1
Установка Casperjs
# cd /usr/src
# git clone -b master git://github.com/n1k0/casperjs.git
# cd casperjs
# ln -sf `pwd`/bin/casperjs /usr/local/bin/casperjs
casperjs требует Python
Устанавливаем третью версию Python
# yum install python3
Делаем символьную ссылку
# ln -s /usr/bin/python3 /usr/bin/python
Теперь casperjs работает и показывает свою версию:
# casperjs --version
1.1.4
Использование Phantomjs.
Программа Phantomjs работает с файлами javascript кода.
Пример:
# cd ~
Создаем файл для проверки hellophantomjs.js:
# touch hellophantomjs.js
Код:
console.log('Hello, world!');
phantom.exit();
Запускаем этот файл на исполнение командой phantomjs
# phantomjs hellophantomjs.js
Если будет сделан следующий вывод, значит phantomjs работает нормально.
Hello, world!
Использование Casperjs.
Программа Casperjs так же работает с файлами javascript кода.
Создадим файл получения скриншота сайта http://myttk.ru на casperjs:
# touch screencasper.js
Код:
var casper = require('casper').create({
verbose: true,
logLevel: 'debug',
pageSettings: {
userAgent: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36'
}
});
casper.options.viewportSize = {width: 1280, height: 1024};
casper.start("http://myttk.ru");
casper.then(function() {
casper.capture("screen.png");
});
casper.run();
Запуск:
# casperjs screencasper.js
В каталоге откуда запускалась команда будет сгенерирован файл скриншота сайта - screen.png.
Базовые конструкции для работы с Casperjs:
Проход авторизации Apache
var url = "http://xxx.ru"
var login = "mylogin"
var password = "mypassword"
casper.then(function() {
casper.thenOpen(url);
casper.setHttpAuth(login, password);
});
Кликнуть по ссылке с неким ID в DOM
var but_id = "xxxx";
casper.thenClick('#'+but_id );
Вывод сообщения в консоль:
casper.echo('Сообщение в консоль');
Запись содержимого некого тега в файл:
var fs = require('fs');
casper.then(function() {
this.echo('Приступаем к копированию данных элемента с ID=DATA_TABLE в файл');
var table = casper.evaluate(function(){
var table = document.querySelector('#DATA_TABLE').innerHTML;
return table;
});
fs.write(outputFile, table, 'w');
});