Страница 1 из 5
Помогите новичку написать скрипт для Human!
Добавлено: 23 янв 2011, 03:42
nikson
Доброй ночи! Помогите написать скрипт, в
php новичек, только недавно начал изучать понемногу. Вот решил написать свой первый
скриптик, надеюсь не последний
, и сразу же возникли вопросы. Надеюсь на вашу помощь, желательно увидеть примеры как это все реализуется.
Пример:
Код: Выделить всё
<?php
$xhe_host ="127.0.0.1:7010";
// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");
$login = "логин";
$parol = "пароль";
$mail ="почта@yandex.ru";
$url ="http://site.ru";
{
$browser->navigate('http://site.ru');
$browser->wait_for(60,1);
// Вводим логин, почту и урл
$input->set_value_by_name('uname',$login);
$input->set_value_by_name('email',$mail);
$input->set_value_by_name('url',$url);
// Вводим пароль
$input->set_value_by_name('pass',$parol);
$input->set_value_by_name('vpass',$parol);
$checkbox->click_by_name('agree_disc');
// Регистрация
$button->click_by_name('submit');
$browser->wait_for(60,1);
// Подтверждение регистрации
$button->click_by_number('0');
$browser->wait_for(60,1);
}
// Quit
$app->quit();
?>
Пытаюсь сделать авторегистратор по одному движку.
Вопросы:
1. Сначало переходим на страницу регистрации и вводим
'uname', тут проблема в том, что если на странице присутствуе еще поле для авторизации
'uname', то все сбивается, логин вводится не туда куда надо.
2. Ставим галочку подтверждение регистрации
$checkbox->click_by_name('agree_disc');, бывает так что кое где она уже стоит и поэтому выходит наоборот галочка снимается и весь процесс регистрации сбивается.
3. Иногда бывает что на странице регистрации присутствует антикапча, как ее лучше прикрутить?
4. Как прописать чтобы после регистрации проити авторизацию и зайти в свой аккаунт и далее записать ссылку на профиль в текстовый файл?
5. Ну и на последок, как реализовать чтобы к примеру есть текстовый файл в нем база урл, берется первый урл, проходит регистрацию ну и как писал выше сохраняет ссылку на профиль в текстовый файл, после чего берет второй урл и т.д.
Re: Помогите новичку написать скрипт для Human!
Добавлено: 23 янв 2011, 19:17
ilekor
Дайте для начала урл сайта в ЛС, посмотрим, по вашему описанию сложности написать скрипт не составит.
Re: Помогите новичку написать скрипт для Human!
Добавлено: 24 янв 2011, 03:57
satih
1. $input->remove_attribute_by_name('uname',name);
2. $checkbox->set_checked_by_name('agree_disc', true) ;
Re: Помогите новичку написать скрипт для Human!
Добавлено: 25 янв 2011, 12:14
Support
3. Нужно делать проверку на наличие антикаптчи. Например, если поле для ввода ответа с каптчи существует, разгадывать. Нет - продолжить. Про if else почитайте )
4. Ну, это в двух словах не объяснить. Зависит от сайта.
5. Через цикл for. К примеру вот так
Код: Выделить всё
$urls = file(urls.txt);
for ($i=0;$i<count($urls);$i++)
{
$browser->navigate($urls[$i]);
$browser->wait_for(60,1);
и так далее
}
Re: Помогите новичку написать скрипт для Human!
Добавлено: 25 янв 2011, 13:23
nikson
satih писал(а):1. $input->remove_attribute_by_name('uname',name);
Не помогло, все равно вставляет не туда...
Re: Помогите новичку написать скрипт для Human!
Добавлено: 25 янв 2011, 14:00
Support
В таком случае, можно вставлять не по имени, а по номеру. Кликните правой кнопкой мышки на нужное поле, чтобы выбрать возможные варианты из меню.
Re: Помогите новичку написать скрипт для Human!
Добавлено: 25 янв 2011, 14:13
nikson
Support писал(а):В таком случае, можно вставлять не по имени, а по номеру. Кликните правой кнопкой мышки на нужное поле, чтобы выбрать возможные варианты из меню.
Если делать по номеру, то к примеру при регистрации следующего урл там уже номер другой.
Re: Помогите новичку написать скрипт для Human!
Добавлено: 25 янв 2011, 14:59
Support
В таком случае, следует проявить творческую смекалку
Ознакомиться подробнее с функциями. Дальнейшую помощь смогу оказать в аське, ознакомившись с примером сайта. По симптомам напоминает DLE, но лучше посмотреть вживую.
Re: Помогите новичку написать скрипт для Human!
Добавлено: 25 янв 2011, 23:02
satih
про творческую смекалку правильно сказано, посмотри страницу с тем input, и все функции которые есть у этого элемента, подумай какую из них лучше применить. сначала кажется что всего много, чуть привыкнешь будешь писать почти в слепую, большинство функций делают похожие вещи, просто определяют этот инпут по разным параметрам, num или name и т.д.
а помочь с твоим случаем только по обрезку кода невозможно, надо смотреть на то что дает каждый сайт и в каком случае
Re: Помогите новичку написать скрипт для Human!
Добавлено: 26 янв 2011, 01:13
nikson
Всем спасибо за совет! С формой регистрации я разобрался, не знаю правильный этот вариант или нет, но во всяком случае вся форма заполняется. В моей базе, под которую я пытаюсь написать скрипт всего три варианта ввода или "uname", или по номеру, если есть на странице еще и поле авторизации.
Я сделал так:
$input->set_value_by_name('uname',$login);
$input->set_value_by_number('2',$login);
$input->set_value_by_number('1',$login);
Может это делается как-то проще? Правильный такой вариант? Подскажите.
Теперь я дошел до ввода капчи, приведите пожалуйста пример кода для послания ее на сервис antigate.com для распознования, только не по номеру а по имени, так как номер у рисунка везде разный...
Re: Помогите новичку написать скрипт для Human!
Добавлено: 26 янв 2011, 01:19
nikson
Support писал(а):3. Нужно делать проверку на наличие антикаптчи. Например, если поле для ввода ответа с каптчи существует, разгадывать. Нет - продолжить. Про if else почитайте )
Можете привести пример кода? Это стандартный код для проверки на наличие антикапчи или под каждый движок разный?
Re: Помогите новичку написать скрипт для Human!
Добавлено: 26 янв 2011, 10:26
satih
Код: Выделить всё
// если есть инпут с name 'captcha_input'
if ($input->is_exist_with_name('captcha_input')) {
// сохраним картинку с name 'captcha_img_name' в файл captcha.jpg
$image->save_to_file_by_name('captcha_img_name', __DIR__.'\captcha.jpg');
// пошлем на разспознавание
$captcha_text = $anticapcha->recognize(__DIR__.'\captcha.jpg', $apikey, 'http://www.antigate.com', $is_verbose = true, $rtimeout = 5, $mtimeout = 120, $is_phrase = 0, $is_regsense = 0, $is_numeric = 0, $min_len = 0, $max_len = 0);
// заполним поле текстом каптчи
$input->set_value_by_name('captcha_input', $captcha_text);
}
nikson писал(а):
Может это делается как-то проще? Правильный такой вариант? Подскажите.
работает да и слава богу
можно подсчитать сколько таких инпутов есть, и стирать им атрибут name, но это тоже решение, заполнил лишнее поле, и фиг с ним, скрипту же лишнее поле не мешает
Re: Помогите новичку написать скрипт для Human!
Добавлено: 26 янв 2011, 21:20
Chechen
Я знаю что это за движок, но не дле. Заказывал скрипт под этот двиг у одного гуру за 80$, скрипт регит нормально около 80 акков, потом уже начинается лажа, неправильно заполняет поля, там где не нужно активировать акк, идет его активировать и на этом зависает.. Не знаю как поправить скрипт, т.к. он написан совсем по другому, с использованием фасад чтоли, а я в этом нуб, теперь собираюсь своими силами написать...
П.с. а саппорт оказался хороший, коль помогает написать скрипты
Re: Помогите новичку написать скрипт для Human!
Добавлено: 26 янв 2011, 22:53
nikson
nikson писал(а):
можно подсчитать сколько таких инпутов есть, и стирать им атрибут name, но это тоже решение, заполнил лишнее поле, и фиг с ним, скрипту же лишнее поле не мешает
Как это будет выглядеть?
Re: Помогите новичку написать скрипт для Human!
Добавлено: 26 янв 2011, 22:57
nikson
С капчей разобрался, спасибо за помощь! Теперь пойду почитаю про цикл for, надо это все автоматизировать...