Подопытным хостом для авторегистрации возьмем уже нашумевший 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 поля.
$input->set_value_by_name("ctl00_bcr_ctl00___Username",$username); // то есть, мы заполняем поле с id ctl00_bcr_ctl00___Username переменной $username
Для удобства можно в самом XHE глянуть список всех элементов на странице. Отладка -> Получить список элементов. К элементу, будь то полем, текстом, картинкой или кнопкой, можно обращаться не только по ID, но и по его номеру, тексту, да впринципе, любому его признаку. В XHE есть справочник функций, там все подробно описано.
$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 доры в таком же формате, скрипт рандомно будет проставлять на них ссылки в новых дорах. Вроде все.
Спасибо. Уже созрел план как соединить iMacros и эту штуку. Аймакросом собираем поля, далее макрос обрабатываем спец. скриптом и получаем код для этого. И тогда можно делать серверные спамилки. Вопрос.
Спасибо. Уже созрел план как соединить iMacros и эту штуку. Аймакросом собираем поля, далее макрос обрабатываем спец. скриптом и получаем код для этого. И тогда можно делать серверные спамилки. Вопрос.
Как работать с капчами на этой штуке?
Опять ты глупости какие-то выдумываешь :) Зачем объединять iMacros и XHE? iMacros по сравнению с ним детская игрушка, и все, что есть в ай-макросе, хуман сможет сделать гораздо лучше, тем более, парсить сорцы и собирать поля.
Для каптчи можно сделать всплывающий промпт, а можно подрубить антикаптчу.
Спасибо. Уже созрел план как соединить iMacros и эту штуку. Аймакросом собираем поля, далее макрос обрабатываем спец. скриптом и получаем код для этого. И тогда можно делать серверные ****илки. Вопрос.
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
Народ, есть у меня к вам два вопроса на счет хне. 1. Нужно ставить галку аля "С правилами согласен". Но иногда галка стандартно стоит, как сделать, чтобы хуман эмулятор ставил галку только тогда, когда ее нету? 2. Как скопировать текст со страницы и вставить его в поле? Если можно на примере. А именно нужно скопировать текст со страницы из <тег>текст</тег> и скопировать его в буфер или сохранить в файл.
Последний раз редактировалось HenzO; 02.06.2010 в 02:11.