Получаем элементы данных объявления в массиве
$item = explode(";",$add[$i]);
Начинаем вбивать данные:
// область
$anchor->set_focus_by_href("javascript:void(0)",false);
$keyboard->send_input($item[0]);
$keyboard->send_key(9);
// город
$input->set_value_by_name("address_city",$item[1]);
Затем обходим простым способом javascript с помощью клавиатуры:
// перейдем к категории ноутбуки
$keyboard->send_key(9);
$keyboard->send_key(40,true);
$keyboard->send_key(40);
$keyboard->send_key(40);
$keyboard->send_key(40);
$keyboard->send_key(40);
$keyboard->send_key(13,true);
sleep($wt);
$keyboard->send_key(9);
$keyboard->send_key(40,true);
$keyboard->send_key(40);
$keyboard->send_key(13,true);
sleep($wt);
$keyboard->send_key(9);
$keyboard->send_key(40,true);
$keyboard->send_key(40);
$keyboard->send_key(9);
sleep($wt);
Продолжаем заполнение объявления:
// цена
$input->set_value_by_name("price",$item[2]);
Модель и марку выбираем через "другая" для упрощения кода:
// марка
$anchor->set_focus_by_inner_text("* Выберите марку",false);
$keyboard->send_input("Другая");
$keyboard->send_key(9);
$input->set_value_by_name("make_other",$item[3]);
// модель
$input->set_value_by_name("model_other",$item[4]);
// состояние (привязка к слову "новый", в противном случае всегда будет б/у)
$anchor->set_focus_by_inner_text("* Состояние",false);
if($item[5] == "новый")
{
$keyboard->send_key(40);
$keyboard->send_key(40);
$keyboard->send_key(40);
}
else
{
$keyboard->send_key(40);
$keyboard->send_key(40);
}
$keyboard->send_key(9);
// тип предложения (снова используем клавиатуру)
$anchor->set_focus_by_inner_text("* Тип предложения",false);
if($item[6] == "куплю")
{
$keyboard->send_key(40);
$keyboard->send_key(40);
}
elseif($item[6] == "продам")
{
$keyboard->send_key(40);
$keyboard->send_key(40);
$keyboard->send_key(40);
}
elseif($item[6] == "обменяю")
{
$keyboard->send_key(40);
$keyboard->send_key(40);
$keyboard->send_key(40);
$keyboard->send_key(40);
}
else
{
$keyboard->send_key(40);
$keyboard->send_key(40);
$keyboard->send_key(40);
$keyboard->send_key(40);
$keyboard->send_key(40);
}
$keyboard->send_key(9);
// вес (кг)
$input->set_value_by_name("weight",$item[7]);
// размер жесткого диска (в Гб)
$input->set_value_by_name("hdd",$item[8]);
// тип видеокарты (привязка к слову "встроенная", иначе всегда "дискретная")
$anchor->set_focus_by_inner_text("тип видеокарты",false);
if($item[9] == "встроенная")
{
$keyboard->send_key(40);
}
else
{
$keyboard->send_key(40);
$keyboard->send_key(40);
}
$keyboard->send_key(9);
// объем памяти (в мб)
$anchor->set_focus_by_inner_text("Объем памяти, Мб",false);
$keyboard->send_input($item[10]);
$keyboard->send_key(9);
// диагональ экрана (дюймов)
$input->set_value_by_name("diagonal",$item[11]);
// время работы батареи (ч)
$input->set_value_by_name("battery",$item[12]);
// тип аккумулятора
$input->set_value_by_name("tip_akkumuljatora",$item[13]);
// описание
$textarea->set_value_by_name("text",$item[14]);
Обрабатываем добавление фотографий:
// фотографии (не более 10),считываем все фотографии из указанной папки (по названию) в данных объявления:
$photos = $folder->get_all_items($picture.$item[9],false,false);
// получаем массив путей к фото:
$images = explode("\r\n", $photos);
// добавляем все фото на сайт:
foreach($images as $photo)
{
$window->execute_open_file("Выбор",$photo,"&Открыть",false,true);
$inputfile->click_by_name("photo");
sleep($wt);
}
Завершаем добавление данных:
// контактное лицо
$input->set_value_by_name("seller",$item[10]);
// телефон
$input->set_value_by_name("phone",$item[11]);
// скайп
$input->set_value_by_name("skype",$item[12]);
Обрабатываем капчу:
// капча
$img = realpath($img);
$image->screenshot_by_name($img."/captcha.jpeg","captcha");
$captcha = $anticapcha->recognize($img."/captcha.jpeg", $apikey, $path ='http://www.anti-captcha.com',true,5,120,0,0,1,0,0,0);
$input->set_value_by_name("captcha",$captcha);
sleep($wt);
Жмем "далее":
$button->click_by_name("next_link");
Ждем обработку объявления, проверяя наличие соответствующего сообщения на странице:
while(!$h2->is_exist_by_inner_text("Выберите формат Вашего объявления",false))
sleep($wt_long);
Выбираем бесплатный вариант добавления:
$anchor->click_by_inner_text(" на 30 дней Бесплатно",false);
sleep($wt);
Проверяем успешность добавления, опять-таки через проверку наличия соответствующего сообщения на странице:
if ($h2->is_exist_by_inner_text("Спасибо! Ваше объявление размещено на irr.ru",false))
{
debug_mess("объявление размещено");
sleep($wt);
}
else
{
debug_mess("<b>объявление НЕ размещено</b>");
sleep($wt);
}
Примечание:
1) не забываем ставить "слипы" (sleep), особенно, если интернет медленный или компьютер маломощный;
2) скрипт расчитан на добавление до 3-х фотографий;
3) для корректной работы,перед запуском скрипта, отключить сообщения браузера (сервис-настройки-браузер-отключить сообщения браузера).
Логика скрипта:
1) считывание данных объявления;
2) переход на сайт и авторизация;
3) добавление объявления;
4) проверка успешности добавления;
Скрипт написан 19.11.2014 в Human Emulator 4.6.50 Advanced.
скачать скрипт