Далеко не все пользователи Human Emulator знают о том, что управление программой можно осуществлять удалёно. То есть Хуман стоит на каком-то сервере, и вы из браузера или из php скриптов на своём компьютере запускаете действия в хумане. Или же хуман стоит в локальной сети в офисе на одном компе, а вы можете со своего ноутбука управлять этим Human Emulator. При этом все действия для сервера и локальной сети одинаковые.
Предположим что Human Emulator стоит на сервере ip которого скажем 93.95.108.1 на порту 7010. Программа открыта и готова к работе.
Самый простой способ, не требующий никаких дополнительных действий это вызов команд из браузера. Просто берём и набираем в браузере такую вот строку http://93.95.108.1:7010/Browser.Navigate?url=google.ru и Хуман на сервере волшебным образом перешёл на google.com. Если ввести следующие команды :
http://93.95.108.1:7010/Browser.Navigate?url=http%3A%2F%2Fgoogle.com&use_cache=1
http://93.95.108.1:7010/Input.SetValueByName?name=q&value=human
http://93.95.108.1:7010/InputButton.ClickByNumber?number=0
то Human Emulator на сервере перейдёт на google.com в поисковую строку добавит слово human и нажмёт на кнопку поиска.
В скрипте хумана эти строки будут выглядеть так:
$browser->navigate('http://google.com');
$input->set_value_by_name('q',"human".$i);
$button->click_by_number(0);
Для того что бы из обычного вида получить команды для ввода в браузер достаточно открыть Информационную панель (меню Вид-> Информационная панель) и запустить скрипт на выполнение.
Второй способ, требует установки шаблонов программы Human Emulator на компьютер, с которого осуществляется удалённое управление. Для этого просто достаточно куда то скопировать папку Templates из папки с хуманом. Далее из командной строки php запускаем на выполнение скрипт со следующим кодом :
?php
$xhe_host ="93.95.108.1:7010";
// The following code is required to properly run XWeb Human Emulatorrequire("../Templates/xweb_human_emulator.php");
$browser->navigate('http://google.com');
// wait on browser
$browser->wait_for(30,1);
for($i;$i<50;$i++)
{
$browser->navigate('http://google.com');
// wait on browser
$browser->wait_for(30,1);
$input->set_value_by_name('q',"human".$i);
$button->click_by_number(0);
// wait on browser
$browser->wait_for(30,1);
echo $i."
";
// убрать set focus с окна отладки
$browser->navigate('about:blank');
// wait on browser
$browser->wait_for(30,1);
}
// Quit
$app->quit();
?>
И на сервере хуман выполнит этот скрипт.
Ещё один способ управления удалённо, это добавить скрипт Human Emulator в страничку вашего сайта и пользователь при нажатии каких либо элементов может запустить это скрипт, а хуман выполнит его.
Ну и последний способ удалённого управления это запуск скриптов в хумане, который стоит на управляеющем компе и эти скрипты будут выполняться на сервере. Для этого достаточно будет задать в начале скрипта строку $xhe_host ="93.95.108.1:7010"; как это сделано в примере скрипта выше.
Удачного вам удалённого управления. :)
понедельник, 7 февраля 2011 г.
четверг, 3 февраля 2011 г.
Работа с данными используя Human Emulator
Давичи передо мной встала задача в коде одной из моих программ поменять огромное количество строк. Я решил не заниматься этим в ручную и быстренько накатал скрипт на Хумане, который всё сделал за несколько секунд. В итоге написание скрипта и его выполнение заняло не более 5 минут.
Скрипт делает следующее берёт строку из файла logins.txt, которая выглядит так - pMenu->ModifyMenu(ID_FILE_ZIP_AND_EMAIL_ALL_FILE,MF_BYCOMMAND,theApp.tr.GetString("&Zip and E-Mail All File To ...")); и подставляет значение ID_FILE_ZIP_AND_EMAIL_ALL_FILE после MF_BYCOMMAND, таким образом в результате мы имеем строку в таком вот виде pMenu->ModifyMenu(ID_FILE_ZIP_AND_EMAIL_ALL_FILE,MF_BYCOMMAND,ID_FILE_ZIP_AND_EMAIL_ALL_FILE,theApp.tr.GetString("&Zip and E-Mail All File To ..."));.
код скрипта:
Для выполнения скрипта нужно создать файл login.txt который будет содержать строки типа pMenu->ModifyMenu(ID_FILE_ZIP_AND_EMAIL_ALL_FILE,MF_BYCOMMAND,theApp.tr.GetString("&Zip and E-Mail All File To ...")); в папке, в которой лежит скрипт.
Скрипт делает следующее берёт строку из файла logins.txt, которая выглядит так - pMenu->ModifyMenu(ID_FILE_ZIP_AND_EMAIL_ALL_FILE,MF_BYCOMMAND,theApp.tr.GetString("&Zip and E-Mail All File To ...")); и подставляет значение ID_FILE_ZIP_AND_EMAIL_ALL_FILE после MF_BYCOMMAND, таким образом в результате мы имеем строку в таком вот виде pMenu->ModifyMenu(ID_FILE_ZIP_AND_EMAIL_ALL_FILE,MF_BYCOMMAND,ID_FILE_ZIP_AND_EMAIL_ALL_FILE,theApp.tr.GetString("&Zip and E-Mail All File To ..."));.
код скрипта:
$xhe_host ="127.0.0.1:7010";
// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");
// получить строки из файла в массив
$strings = file("logins.txt");
// получить линию в нужном нам виде
function get_line($str)
{
// префиксы для разбора
$pref1= "ModifyMenu(";
$pref2= "MF_";
$pref3= "theApp.tr.GetString(";
// находим префиксы
$ind = strpos($str,$pref1);
$ind1 = strpos($str,$pref2,$ind);
// получаем строку
$res = substr($str, $ind+ strlen($pref1),$ind1-$ind-strlen($pref1));
// выводим в окно отладки для контроля процесса
echo $res."
";
// получаем индекс префикса
$ind2 = strpos($str,$pref3);
// формируем нужную нам строку
$res = substr($str,0,$ind2).$res .substr($str,$ind2,strlen($str)-$ind2);
// выводим результат в окно отладки
echo $res."
";
return $res;
}
// переменная куда будем получать результат
$data="";
// пройтись по всем строкам
for($i=0;$i {
global $data;
// получить i-ю строку
$line = $strings[$i];
// добавим в результат изменённую строку
$data=$data.get_line($line);
}
// запишем результат в файл
$textfile->write_file("data.txt",$data,0) ;
// Quit
$app->quit();
?>
Для выполнения скрипта нужно создать файл login.txt который будет содержать строки типа pMenu->ModifyMenu(ID_FILE_ZIP_AND_EMAIL_ALL_FILE,MF_BYCOMMAND,theApp.tr.GetString("&Zip and E-Mail All File To ...")); в папке, в которой лежит скрипт.
пятница, 28 января 2011 г.
Снижены цены на Xweb Human Emulator
Рад сообщить всем свои читателям о том, что в этом году существенно были снижен цены на программу XWeb Human Emulator. Ниже приведены цены и пакеты доступные на сегодняшний день.
Human Emulator Basic – 47 wmz. Включает в себя набор стандартных функций и инструменты для записи макросов, однако не может использовать прокси, работать с базами данных, эмулировать клики мышью и ввод данных с клавиатуры.
Human Emulator Standard – 97 wmz. Доступен полный однопоточный функционал программы без каких-либо ограничений.
Human Emulator Advanced – 297 wmz. Многопоточная версия программы.
Некоторые изменения коснулись и пакетов программы.
Human Emulator Business Pack теперь стоит 347 wmz и включает в себе одну Standard и одну Advanced версию программы.
Human Emulator Server Pack по прежнему состоит из трёх Advanced (многопоточных) лицензий и стоит 497 wmz.
Подробную таблицу сравнения версий вы можете посмотреть тут
Human Emulator Basic – 47 wmz. Включает в себя набор стандартных функций и инструменты для записи макросов, однако не может использовать прокси, работать с базами данных, эмулировать клики мышью и ввод данных с клавиатуры.
Human Emulator Standard – 97 wmz. Доступен полный однопоточный функционал программы без каких-либо ограничений.
Human Emulator Advanced – 297 wmz. Многопоточная версия программы.
Некоторые изменения коснулись и пакетов программы.
Human Emulator Business Pack теперь стоит 347 wmz и включает в себе одну Standard и одну Advanced версию программы.
Human Emulator Server Pack по прежнему состоит из трёх Advanced (многопоточных) лицензий и стоит 497 wmz.
Подробную таблицу сравнения версий вы можете посмотреть тут
Пример скрипта под XHE. Сбор данных с WP.
Скрипт для сбора данных с WP сайта. Написан для работы под XWeb Human Emulator.
require("../Templates/xweb_human_emulator.php");
// папка куда писать результаты
$folder ="D:\\work\\help_en\\";
// имя файла
$name = "functions";
// префиксы для получения текста
$prefix1="Edit ";
$prefix2 = "Вернуться к списку команд";
////////////////////////////////// доп функции ////////////////////////////////////////////////////////
// получить нужный текст
function parse_text($body_text,$pref1,$pref2)
{
$ind = strpos($body_text,$pref1);
$ind1 = strpos($body_text,$pref2,$ind);
$res = substr($body_text, $ind+ strlen($pref1),$ind1-$ind-strlen($pref1));
return $res;
}
// добавить в файл
function add_file($path,$page_body)
{
$file=fopen($path,"a+");
fputs($file,$page_body);
// close out file
fclose($file);
}
////////////////////////////////// выполнение скрипта ////////////////////////////////////////////////////////
for($i=11;$i<480;$i++)
{
// navigate to google
$browser->navigate("путь к wp сайту");
// wait on browser
$browser->wait(1);
// переходим на страничку описания функции
$anchor->click_by_number($i);
$browser->wait_for(30,1);
$text = $webpage->get_document_body("false");
$textfile->write_file("c://1.txt",$text,0) ;
$text=parse_text($text,$prefix1,$prefix2);
// запишем в файл
add_file($folder.$name.".txt" ,$text) ;
}
// Quit
$app->quit();?>
понедельник, 31 мая 2010 г.
Свежие обновления Human Emulator
Учёные утверждают, что между временем, когда пещерный человек взял в руки дубинку чтобы отбиваться от врагов, и изобретением лука со стрелами прошло около двух с половиной миллионов лет. К счастью, в наше время прогресс движется несколько быстрее и всего за три с хвостиком месяца Human Emulator значительно расширил свои функциональные возможности. Конечно, не без помощи пользователей и программистов
Небольшой обзор ключевых особенностей программы, появившихся после выхода версии 4.0:
Самой ожидаемой возможностью программы, бесспорно, стал отлов и открывание любых всплывающих окон в новых вкладках программы, на пример Firefox. Теперь совсем не обязательно вырезать атрибуты target="_blank" у линков, либо разбирать post-запросы форм, сабмитящих данные в новое окно. Наткнувшись на поп-ап, скрипт просто продолжит работу с ним в новой закладке, а по завершению всех намеченных действий вернётся к основной.

Так-же был значительно доработан и расширен функционал проксичеккера. Теперь можно проверять прокси на анонимность и способность переправлять post-запросы, полностью управлять его работой из скрипта и параллельно с проверкой отрабатывать другие задачи/скрипты в Эмуляторе.
К сожалению, из-за отсутствия примеров и пояснений, появление в функционале программы объекта $Raw прошло довольно спокойно. Теперь эта ошибка устранена и любой желающий может оценить возможности, которые предоставляет полный контроль над обменом данными между браузером и сервером. Почитать описание объекта можно тут http://www.humanemulator.info/6578 А остальное целиком и полностью зависит от задач и фантазии пользователя
Приятным дополнением ко всему остальному стала возможность работы с диалогами предупреждений безопасности и скачки файлов. Первые теперь можно целиком и полностью отключить, чтобы сообщения о переходе на безопасное соединение и т.д. не мешались боле. Вторым-же, помимо этого, можно назначить путь для скачки по умолчанию, куда будут сохраняться интересующие вас файлы не спрашивая разрешения пользователя и не стопоря тем самым процесс.
Многопоточная версия получила раздельные настройки для каждой копии программы, даже будучи запущенной из одного места нужное количество раз.
Из обновлений "Для удобства":
Из диалога добавления кода (alt+ctrl+вправо) можно сразу перейти на пример использования функции либо её справочное описание на сайте. Это значительно сокращает время поиска информации и снижает шанс "упустить мысль", которую вы желаете реализовать )
В объект $mail добавлена функция find_and_navigate_on_link_by_number, с помощью которой подтверждение регистраций и активация аккаунтов этим объектом становится ещё проще для использования и написания.
Для команд, возвращающих после своей отработки список чего-либо (к примеру get_all_urls), добавлен аргумент $separator, которым будет отделяться одна строка от другой. По умолчанию используется "
", но в различных случаях может пригодится и "\r\n", и ";".
Добавлена возможность указывать папку для скриптов "По умолчанию". После её смены, новые скрипты будут создаваться в новом месте. Файл->Открыть так-же будет изначально отображать содержимое указанной вами папки.
Мы всеми силами стараемся поддерживать актуальность и полезность продукта для пользователей, поэтому с готовностью выслушаем и приймем к сведению любые ваши пожелания о расширении функционала, дополнениях и поправках.
Небольшой обзор ключевых особенностей программы, появившихся после выхода версии 4.0:
Самой ожидаемой возможностью программы, бесспорно, стал отлов и открывание любых всплывающих окон в новых вкладках программы, на пример Firefox. Теперь совсем не обязательно вырезать атрибуты target="_blank" у линков, либо разбирать post-запросы форм, сабмитящих данные в новое окно. Наткнувшись на поп-ап, скрипт просто продолжит работу с ним в новой закладке, а по завершению всех намеченных действий вернётся к основной.
Так-же был значительно доработан и расширен функционал проксичеккера. Теперь можно проверять прокси на анонимность и способность переправлять post-запросы, полностью управлять его работой из скрипта и параллельно с проверкой отрабатывать другие задачи/скрипты в Эмуляторе.
К сожалению, из-за отсутствия примеров и пояснений, появление в функционале программы объекта $Raw прошло довольно спокойно. Теперь эта ошибка устранена и любой желающий может оценить возможности, которые предоставляет полный контроль над обменом данными между браузером и сервером. Почитать описание объекта можно тут http://www.humanemulator.info/6578 А остальное целиком и полностью зависит от задач и фантазии пользователя
Приятным дополнением ко всему остальному стала возможность работы с диалогами предупреждений безопасности и скачки файлов. Первые теперь можно целиком и полностью отключить, чтобы сообщения о переходе на безопасное соединение и т.д. не мешались боле. Вторым-же, помимо этого, можно назначить путь для скачки по умолчанию, куда будут сохраняться интересующие вас файлы не спрашивая разрешения пользователя и не стопоря тем самым процесс.
Многопоточная версия получила раздельные настройки для каждой копии программы, даже будучи запущенной из одного места нужное количество раз.
Из обновлений "Для удобства":
Из диалога добавления кода (alt+ctrl+вправо) можно сразу перейти на пример использования функции либо её справочное описание на сайте. Это значительно сокращает время поиска информации и снижает шанс "упустить мысль", которую вы желаете реализовать )
В объект $mail добавлена функция find_and_navigate_on_link_by_number, с помощью которой подтверждение регистраций и активация аккаунтов этим объектом становится ещё проще для использования и написания.
Для команд, возвращающих после своей отработки список чего-либо (к примеру get_all_urls), добавлен аргумент $separator, которым будет отделяться одна строка от другой. По умолчанию используется "
", но в различных случаях может пригодится и "\r\n", и ";".
Добавлена возможность указывать папку для скриптов "По умолчанию". После её смены, новые скрипты будут создаваться в новом месте. Файл->Открыть так-же будет изначально отображать содержимое указанной вами папки.
Мы всеми силами стараемся поддерживать актуальность и полезность продукта для пользователей, поэтому с готовностью выслушаем и приймем к сведению любые ваши пожелания о расширении функционала, дополнениях и поправках.
Подписаться на:
Сообщения (Atom)