Скрипт для автоматического проставления «лайков» аватар пользователей страниц в Вконтакте по заданным параметрам поиска.
В этой статье мы рассмотрим скрипт для автоматического лайканья аватар пользователей в Вконтакте, по заданным параметрам поиска. Начнем, как обычно с подготовительной части и настроек скрипта:
Настройки скрипта:
// скрипт работает в режим отладки $dbg = true; // логин и пароль для входа в ВК(необходимо заполнить) $login = ""; $pass = ""; // время ожидания $wt = 5; $wt_long = 10; // путь к необходимой группе(необходимо заполнить) $group = ""; // количество лайков за один проход $likes = 3; // текущее количество лайков $cur_likes = 0; // путь к обработанным анкетам $path_to_ankets = "res\\ankets.txt";
для начала пропишем создание дополнительной вкладки — в ней мы будем переходить по полученным линкам на профили пользователей ВК.
// открыть дополнительную вкладку
$browser->set_count(2);
$browser->set_active_browser(0);
sleep($wt);
echo "Переходим на сайт ВК<br>";
$browser->navigate("http://vk.com/");
sleep($wt_long);
echo "Авторизируемся<br>";
$input->send_keyboard_input_by_name("email", $login);
sleep($wt);
$input->set_focus_by_name("pass");
$input->send_keyboard_input_by_attribute("id","index_pass",true, "$pass");
sleep($wt);
echo "нажимаем кнопку Войти<br>";
$btn->click_by_inner_text("Войти",false);
$btn->click_by_name("index_login_button");
sleep($wt_long);
echo "Переходим в нужную нам группу<br>";
$browser->navigate($group);
sleep($wt_long);
получим кол-во найденных людей (число, которое выдает поисковик ВК), оно нам понадобиться для прокрутки страницы.
echo "начинаем прокручивать скролл вниз<br>";
$all_of_member_old = 0;
$cur_scroll = 0;
while (true)
{
// получаем номера на всех подписчиков
$arr_of_names = $div->get_all_inner_texts_by_attribute("class", "labeled name", true);
$all_of_member = count($arr_of_names);
echo $all_of_member . "<br>";
if ($all_of_member_old == $all_of_member)
{
$cur_scroll++;
}
else
{
$cur_scroll = 0;
}
if ($cur_scroll >= 10)
{
echo "если количество подгруженных анкет такое же как и в предыдущий раз<br>";
echo "уже 10 циклов в подряд, то скорее всего мы дошли до конца страницы<br>";
break;
}
$all_of_member_old = $all_of_member;
if ($all_of_member > 200)
{
echo "Количество подписчиков более 200<br>";
break;
}
echo "прокручиваем колесо<br>";
$mouse->wheel(-rand(14, 24), $window_width/2, $window_height/2);
sleep(4);
}
т.е. получаем линк по имени пользователя с главной, переходим по линку в доп. вкладке, затем возвращаемся на главную и так по всем найденным страницам!
В итоге вся логика скрипта состоит из 9 пунктов:
1) переходим на сайт и авторизируемся;
2) переходим на нужную группу;
3) получаем всех пользователей группы;
4) получаем всех пользователей группы в «online»;
5) прокручиваем страницу вниз для максимальной прогрузки данных о найденных контактах (не более 1000);
7) получаем по каждому контакту ссылку на профиль;
8) используя дополнительную вкладку переходим по полученным линкам на аккаунт пользователя;
9) после перехода на страницу пользователя — кликаем по аватару и ставим лайк.
Примечания:
1. Анкеты которые «лайкались» ранее повторно не используются. При использовании анкеты, уникальный путь к ней сохраняется в папке res/ankets.txt. Соответственно если повторно эта анкета встречается в другой группе или же скрипт повторно запускается для этой же группы он предварительно проверяет лайкали ли мы ранее эту анкету. Если да, то пропускаем ее и идем далее;
2. Бываем что группа маленькая и количество онлайн-пользователей на данный момент менее 1000 — скрипт анализирует если количество подгруженных пользователей не изменно 10 скролов — вероятнее всего мы дошли до низа списка и подгрузили всех пользователей группы находящихся в режиме «online». Производится выход и скрипт переходит к следующему шагу — «лайкам» фотографий.
Видео работы скрипта автоматического нажатия «like» Вконтакте
Скрипт написан 06.12.2018 и оптимизирован под версию 7.0.26
