 Senior Member XHE - учимся писать скрипты сами Небольшой ликбез по Xedant Human Emulator. Подопытным хостом для авторегистрации возьмем уже нашумевший blogs.technet.com, знаю, многие после статьи Енотика не отказались бы от него Ну что ж, держите. Прежде всего обозначим задачу, которую скрипт должен выполнять. Для меня необходимо вот что: скрипт должен брать кеи из файла, юзернейм и тайтл должны быть кеем; на дорвее должна быть пара десятков рандомных кеев; перелинковка дорвеев; сохранять доры в файл в удобном формате; Ну, начнем с подготовки. Создадим в папке, куда установлен XHE папку "data" и зальем туда файл с кейвордами "keys.txt". Технические моменты, как обрабатываются кеи, и как происходит перелинковка, я опущу, к XHE это относится косвенно. В аттаченном скрипте вы сами сможете это разобрать. Для нас важней, как происходит заполнение форм и сабмиты. Заходим на xttp://blogs.technet.com/user/CreateUser.aspx и смотрим, как выглядит форма регистрации. Но перед этим в наш скрипт добавляем
PHP код: $browser->clear_cash();
То есть, стираем старый кэш. На Technet я заметил глюки, когда остается кэш от старой регистрации, так что лишним не будет. Далее
PHP код: $browser->navigate("http://blogs.technet.com/user/CreateUser.aspx"); //заходим XHE на страницу регистрации
$browser->wait(1); // и ждем окончания загрузки страницы
Первое поле в форме, которую нам надо заполнять "Sign in Name:". Смотрим сорцы страницы, и вытаскиваем ID поля.
PHP код: <input name="ctl00$bcr$ctl00$_$Username" type="text" maxlength="64" id="ctl00_bcr_ctl00___Username" accesskey="9" tabindex="1" size="25" />
Вот этот инпут. Значит, пишем в скрипте
PHP код: $input->set_value_by_name("ctl00_bcr_ctl00___Username",$username); // то есть, мы заполняем поле с id ctl00_bcr_ctl00___Username переменной $username
Для удобства можно в самом XHE глянуть список всех элементов на странице. Отладка -> Получить список элементов. К элементу, будь то полем, текстом, картинкой или кнопкой, можно обращаться не только по ID, но и по его номеру, тексту, да впринципе, любому его признаку. В XHE есть справочник функций, там все подробно описано. по аналогии заполняем остальные поля
PHP код: $input->set_value_by_name("ctl00_bcr_ctl00___Password",$password);
$input->set_value_by_name("ctl00_bcr_ctl00___Password2",$password);
$input->set_value_by_name("ctl00_bcr_ctl00___Email",$email);
$input->set_value_by_name("ctl00_bcr_ctl00___Email2",$email);
и кликаем на сабмит
PHP код: $button->click_by_name("ctl00_bcr_ctl00___CreateAccount");
$browser->wait(1); // обазятельно ждем окончания загрузки страницы, чтобы наш скрипт не ушуршал дальше, не дождавшись
"Your account has been created and you are now signed in." Мы зарегались. Теперь нужно отредактировать профиль и создать дорвей
PHP код: $browser->navigate("http://blogs.technet.com/user/EditProfile.aspx"); // Edit profile
$browser->wait(1);
$textarea->set_value_by_name("ctl00_bcr_ctl00___Signature",$about); // Заполняем поле "подпись", сюда мы вставим заманчивый текст с ссылкой, а лучше картинку, html в подписи разрешен
$textarea->set_value_by_name("ctl00_bcr_ctl00___bio",$about2); // а это поле мы можем забить текстом и кейвордами, а также тут будет перелинковка со старыми дорами
$button->click_by_name("ctl00_bcr_ctl00___UpdateButtonBottom"); // кликаем сабмит
$browser->wait(1);
$browser->navigate("http://blogs.technet.com/logout.aspx"); // и выходим из профиля
Все, это и есть минимальный код для регистрации одного профиля. Теперь нужно сделать одну важную вещь - забежать за угол и сохраниться Шучу, теперь нужно усложнить скрипт - добавить ему функционал, чтобы удовлетворял нашу первоначальную задачу и работал в цикле. Но это к XHE уже имеет косвенное отношение, там голый php код, его вы сможете самостоятельно разобрать в скрипте. Полная версия скрипта в аттаче. Скрипт в папке data создает файл со списком созданных доров в формате "дорвей||кейворд". Закидывайте в файл alldoors.txt доры в таком же формате, скрипт рандомно будет проставлять на них ссылки в новых дорах. Вроде все. tech.zip -
Senior Member  Спасибо. Уже созрел план как соединить iMacros и эту штуку. Аймакросом собираем поля, далее макрос обрабатываем спец. скриптом и получаем код для этого. И тогда можно делать серверные спамилки. Вопрос. Как работать с капчами на этой штуке? -
Senior Member   Сообщение от noxon.su  Спасибо. Уже созрел план как соединить iMacros и эту штуку. Аймакросом собираем поля, далее макрос обрабатываем спец. скриптом и получаем код для этого. И тогда можно делать серверные спамилки. Вопрос. Как работать с капчами на этой штуке? Опять ты глупости какие-то выдумываешь Зачем объединять iMacros и XHE? iMacros по сравнению с ним детская игрушка, и все, что есть в ай-макросе, хуман сможет сделать гораздо лучше, тем более, парсить сорцы и собирать поля. Для каптчи можно сделать всплывающий промпт, а можно подрубить антикаптчу.
Пользователь сказал cпасибо:  Кто может рассказать , как правильно обрабатывать список прокси для Кседанта ? Никак не получается сделать это правильно -
Member   Сообщение от noxon.su  Спасибо. Уже созрел план как соединить iMacros и эту штуку. Аймакросом собираем поля, далее макрос обрабатываем спец. скриптом и получаем код для этого. И тогда можно делать серверные ****илки. Вопрос. Как работать с капчами на этой штуке? $image->save_to_file_by_number(3,"C:\\captcha.jpg"); $captcha = $image->recognize_by_anticaptcha("","C:\\captcha.jpg", $captchakey,"http://www.antigate.com"); $input->set_value_by_number("0", $captcha); 3 и 0 тут - это номера картинок и поля ввода. Отладка -> пронумеровать (берутся там). Юзаем каждый прокси по 5 раз, не проверял но должно работать: $proxyz=file("proxy.txt"); $counter1 = 0; $counter2 = 0; (for $i=0 блаблабла цикл до 100) { $proxy=rtrim($proxy[$counter1]); if ($counter2++ > 5) $counter1++; $browser->enable_proxy("all connections",$proxy); }
-
Senior Member  А как почту в ней разбирать? если нужно ссылку активации кликнуть? -
Member  указываем мыло как $nick.'@asdasd.ru' Пример подтверждения ссылки от реги укоза: $browser->navigate("http://www.asdasd.ru/?from=noreply&dfrom=unet.com&to=".$nick); $browser->wait(1); $anchor->click_by_number("2"); $anchor->click_by_number("2"); $browser->wait_for(240,1); $txt = $webpage->get_body(); $txt = substr($txt,strpos($txt,'по этой ссылке'),strpos($txt,'Если переход ')); $txt = substr($txt,19,strpos($txt,'Если переход ')); $link = substr($txt,0,strpos($txt,'Если')-5); $link = substr($txt,0,strpos($txt,'<BR')); $browser->navigate(htmlspecialchars_decode($link)); $browser->wait_for(240,1); регулярками круче конечно, но меня иногда ломает их тестить и тупо через стрпоз делаю.. Пользователь сказал cпасибо: Member  применил скрипт - пишет
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 98304 bytes) in C:\Program Files\XWeb\Human Emulator\Templates\xweb_human_emulator.php on line 53 Кто что может подсказать? -
Senior Member  Народ, есть у меня к вам два вопроса на счет хне. 1. Нужно ставить галку аля "С правилами согласен". Но иногда галка стандартно стоит, как сделать, чтобы хуман эмулятор ставил галку только тогда, когда ее нету? 2. Как скопировать текст со страницы и вставить его в поле? Если можно на примере. А именно нужно скопировать текст со страницы из <тег>текст</тег> и скопировать его в буфер или сохранить в файл. Последний раз редактировалось HenzO; 01.06.2010 в 23:11. -
 интересует экспорт библиотек XHE для использования отдельно от самой проги работы. Если можете помочь (естественно небесплатно), жду в асе 435268826 -
| Похожие темы | Рейтинг | Раздел | Ответов | Последний пост | | | Реклама | 11 | 24.08.2010 06:26 | | | Дайджест блогосферы | 7 | 03.04.2010 12:49 | | | Адалт и дейтинг | 20 | 20.01.2010 00:01 | | | Дорвеи | 9 | 17.11.2009 10:28 | | | Прочее | 18 | 25.09.2009 11:47 | Сейчас на сайте: 9 пользователей и 129 гостей | |