
В этой небольшой статье хочу привести примеры как легко с помощью JavaScript:
- Принять все заявки в друзья
- Удалить собак (заблокированных друзей)
- Количество записей на странице
- Удалить все записи на своей стене
Сразу оговорюсь все методы расписаны уже в VK API, но здесь мы будем использовать чистый JavaScript, даже без jQuery. Все методы писал для своих нужд по мере необходимости для автоматизации рутинных задач, буду рад в комментариях вашим предложениям и новым интересным задачам и возможно напишу статью с набором новых сниппетов.
Как это работает и как запустить скрипты
Данная статья возможно заинтересует людей совершенно не знакомых ни с JavaScript, ни с консолью разработчика, ни с веб разработкой в целом. Все примеры вы выполняете на свой страх и риск, я публикую материал в ознакомительных целях и для того чтобы в будущем не повторять блоки кода а пользоваться готовыми конструкциями. Чтобы запустить какой-то код нужно находиться на той самой странице где это будет исполняться. Для понимания, что делает код — он исполняет ваши действия, но на автомате. Допустим, при раскрутке странице мне приходилось добавлять в друзья не 20-30 человек, а по 200-500 в день. Если по загруженности у меня не было времени на ВК, то тогда необходимо было добавлять иногда и 800-1000 человек разом. Здесь никакой нормальный человек не будет как обезьянка кликать на сотни кнопок и нужны более практичные методы. Все действия я буду показывать на Google Chrome, но методы работают во всех браузерах. Приступим к теме, допустим вы на странице добавления друзей, а конкретно там где принимаете входящие заявки. Прокрутите страницу максимально вниз, чтобы загрузились все заявки полностью, затем нажимаем клавишу F12 у вас появляется справа инструменты разработчика. Там есть вкладки Элементы, Консоль и другие. Если Элементы нужны для того чтобы видеть структуру страницы и стили оформления, то Консоль это непосредственно поле в котором вы выполняете скрипты JavaScript. Он работает с этой структурой и обрабатывает события, к примеру нажатие на кнопку.

Перейдя в консоль, в нижнем поле со стрелкой можно вводить код и исполнять на Enter.
Принять все заявки в друзья
Перейдем на страницу друзей, там где раздел входящие заявки, и прокрутим вниз пока все не отобразятся. Для тех кто хочет понять как это работает, какой код писать нужно во первых научиться писать на JavaScript, а потом ознакомится со структорой DOM (Document Object Model), а потом уже приступить к следующему. При наведении на объект (кнопку) выбираем «Просмотреть код».

Далее в панели разработчика во вкладке инструменты выделится этот элемент, следующий код выделился у меня (все id заменены):
<button class="flat_button button_small" id="accept_request_1" onclick="Friends.acceptRequest(1, '1a111a1111aaa1a11a', this)">Добавить в друзья</button>
В данном случае меня интересует ее класс flat_button button_small. Здесь идет два класса и на JavaScript выполняется код для добавления друга Friends.acceptRequest(), где первым параметром записывается id пользователя. Логика скрипта для принятия входящих заявок. Нам нужны все кнопки добавить в друзья и кликнуть по всем!
Для решения задачи, мы создадим массив, куда поместим все найденные объекты с этим классом, затем циклом for … in пройдемся по полученному массиву, в котором нажмем по каждой кнопке, с помощью уже имеющегося у каждой кнопки события click.
var buttons = document.getElementsByClassName('flat_button button_small'); for(button in buttons) { buttons[button].click(); }
Удалить собак (заблокированных пользователей)
Как мы узнаем что пользователь заблокирован или удален? У таких пользователей специфичная картинка профиля, а изучив с помощью панели мы видим что адрес этой картинки следующий:
https://vk.com/images/deactivated_100.png?ava=1
Соответственно, по логике наш скрипт должен найти всех пользователей у которых изображение профиля ссылается на этот адрес, записать их ID и вызвать события для их удаления по ID. Здесь я просто взял в качестве кода события то, что было указано в событии click(). Создаем скрипт, нам нужно два массива, один для получения всех пользователей, другой для хранения всех ID собак. Сначала пройдемся соберем в первый массив всех пользователей, затем получим доступ к полю где указан ID в формате ‘id0000’, спарсим оттуда число с помощью паттерна регулярных выражений, добавим эти ID в числовом формате во второй массив. Вызовем цикл который пройдется по второму массиву и по каждому ID вызовет функцию удаления пользователя из друзей Friends.deleteFriend().
var users = document.getElementsByClassName('friends_photo_img'); var dogId = new Array(); for (usr in users) { if (users[usr].src == 'https://vk.com/images/deactivated_100.png?ava=1') dogId.push(users[usr].parentNode.parentNode.parentNode.id.replace(/\D+/g,"")); } for (dog in dogId) { Friends.deleteFriend(event, Number(dogId[dog]), this) }
Количество записей на странице
Заходим на свою страницу и здесь посты отображаются в модуле с классом wall_module. Непосредственно сами записи в блоке с классом page_wall_posts. Изучая структуру можно получить количество записей, указано по ID тега.
var postAllCountAll = document.getElementById('page_wall_count_all'); var postOwnCount = document.getElementById('page_wall_count_own'); console.log('Количество всех записей: ' + postAllCountAll.value); console.log('Количество ваших записей: ' + postOwnCount.value);
Удалить все записи на своей стене
Исследуя структуру сделать как в варианте с принятием заявок от друзей не получится так как функция wall.deletePost() в качестве третьего параметра принимает я так понял какой-то ключ безопасности, сгенерированный при ее создании. Поэтому делаем проще, получаем все посты, и внутри каждого есть ссылка с классом ui_actions_menu_item, а вернее их несколько, являющихся действиями над записью (удалить, архивировать, закрепить и другое). Нам нужно первое действие, так как массивы начинаются с 0, значит нулевое:
var allPosts = document.getElementsByClassName('_post post page_block all own post--with-likes deep_active'); for (var i = 0; i < allPosts.length; i++) { allPosts[i].getElementsByClassName('ui_actions_menu_item')[0].click(); }
На этом я сегодня остановлюсь, пишите в комментариях ваши сценарии и варианты, что хотелось бы автоматизировать именно вам в ВКонтакте.
0 комментариев