понедельник, 7 февраля 2011 г.

Удалённая работа с Human Emulator.

Далеко не все пользователи 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"; как это сделано в примере скрипта выше.

Удачного вам удалённого управления. :)

четверг, 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 ..."));.

код скрипта:

$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.

Подробную таблицу сравнения версий вы можете посмотреть тут

Пример скрипта под 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", и ";".


Добавлена возможность указывать папку для скриптов "По умолчанию". После её смены, новые скрипты будут создаваться в новом месте. Файл->Открыть так-же будет изначально отображать содержимое указанной вами папки.


Мы всеми силами стараемся поддерживать актуальность и полезность продукта для пользователей, поэтому с готовностью выслушаем и приймем к сведению любые ваши пожелания о расширении функционала, дополнениях и поправках.