Три скрипта для удаления всех постов из группы Вконтакте | Пятый элемент блогосферы

Три скрипта для удаления всех постов из группы Вконтакте

Иногда возникает необходимость очистить стену группы или паблика от всех или большинства постов. Такая потребность может возникнуть, например, если владелец принял решение круто изменить тематику группы. Сервис «Вконтакте» позволяет удалять посты только по одному. Даже если в группе имеется сто постов, это неудобно. А как удалить все посты, если их пять тысяч? Для этого существуют скрипты на JavaScript, позволяющие автоматизировать этот нудный процесс.

как удалить все посты из группы вконтакте

1. Скрипт для удаления всех постов группы.

Первый скрипт позволяет полностью удалить все посты группы. Для того, чтобы это выполнить, зайдите в свою группу и прокрутите стену как можно ниже. Затем нужно зайти в консоль, нажав клавишу <F12> (либо правая кнопка мыши и пункт меню «Посмотреть код» либо «Исследовать элемент», в зависимости от браузера). В Хроме она выглядит так.


как удалить все посты в группе или паблике вконтакте

После этого скопируйте скрипт, приведенный ниже, и вставьте его в консоль:

(function () { 'use strict'; if (!confirm('Удалить все записи со стены?')) return; var deletePostLink = document.body.querySelectorAll('a.ui_actions_menu_item[onclick^="wall.deletePost"]'); for (var i = 0; i < deletePostLink.length; i++) { deletePostLink[i].click(); } alert(deletePostLink.length + ' posts deleted'); }());

как удалить все посты в группе или паблике вконтакте

Когда браузер запросит подтверждение действия, одобрите его. После этого, если вы прокрутили стену группы далеко-далеко вниз, запаситесь терпением, чтобы дождаться окончания очистки.

2. Скрипт для удаления всех постов, кроме нескольких верхних.

Предположим, вы изменили тематику группы и уже создали несколько постов, и только потом надумали удалить свои старые записи. Второй скрипт позволяет оставить новые посты в целости и сохранности, вам только сосчитать их количество.

Зайдите в группу (прокручивать стену вниз не нужно), затем в консоль браузера и скопируйте туда следующий код:

var test = false, offset = 50, pause = 1, count = 0;function itit() {offset = prompt('Кол-во первых записей которые нужно оставить.\nУбедитесь что на странице есть больше больше чем указанное кол-во', 50);pause = prompt('Пауза в секундах перед запросами (рекомендуем 1-10)', 1);test = confirm("Вы подтверждаете что хотите удалить все записей в группе/странице?\nКроме первых "+offset+"\n\nНаблюдать за процессом можно в консоли (F12 > console).\nЧтобы остановить удаление, просто закройте страницу.");document.querySelectorAll('#wall_more_link')[0].click();scrollingTest()}function scrollingTest() {document.querySelectorAll('#wall_more_link')[0].click();var posts = document.querySelectorAll('div._post');console.log('Предварительная загрузка записей', posts.length, 'из', offset*2);if(posts.length < offset*2) {setTimeout(function(){scrollingTest() }, 1500);} else {setTimeout(function(){removePost();}, 1500);}}function removePost(){document.body.scrollTop = 9999999;if(test == true) {count++;var post = document.querySelectorAll('div._post')[offset];if(post) {console.log('удаление поста с id '+post.id);post.scrollIntoView();post.querySelector('[onclick*="deletePost"]').click();if(count > 10) {console.log('Нажатие на кнопку "показать ещё"');count = 0;document.querySelectorAll('#wall_more_link')[0].click();}setTimeout(function(){post.remove();removePost();}, pause * 1000);} else {alert('Похоже что посты закончились или требуется перезапустить скрипт');}}}itit();

После появления диалогового окна введите в строку, сколько верхний сообщений нужно оставить, и нажмите .

как удалить все посты в группе или паблике вконтакте

Затем, во втором диалоговом окне, выберите время в секундах перед запросами, после, в третьем диалоговом окне, подтвердите действие. За выполнением процедуры вы сможете наблюдать в консоли. Если захотите остановить процесс удаления постов, достаточно закрыть вкладку с группой, либо окно браузера. Недостаток этого скрипта только один — он слишком неспешный.

3. Скрипт для удаления всех постов по заданному критерию.

Если первые два скрипта работали только на главной странице группы или паблика, третий скрипт работает с выборкой записей. Вот он:

(function () { 'use strict'; if (!confirm('Удалить все записи со стены?')) return; var deletePostLink = document.body.querySelectorAll('a.ui_actions_menu_item[onclick^="wall.deletePost"]'); for (var i = 0; i < deletePostLink.length; i++) { deletePostLink[i].click(); } alert(deletePostLink.length + ' posts deleted'); }());

Чтобы его применить, осуществим поиск по группе. Для этого вам нужно пройти по ссылке «Записи сообщества».

как удалить посты из группы или паблика вконтакте

A. Удаление постов по ключевому слову.

Предположим, группа Вконтакте ранее была посвящена котикам, а теперь — автомобилям. В этом случае сначала осуществляем поиск по слову «кошки», а затем прокручиваем страницу с результатами поиска как можно ниже, заходим в консоль и вводим скрипт в командную строку.

как удалить посты в группе или паблике вконтакте

Готово! Все записи с котиками удалены.

B. Удаление постов старше определенной даты.

Этот вариант будет полезен, если вы помните хотя бы приблизительно день, когда вы, например, сменили тематику группы или приняли решение удалить все те записи, которые сделали, когда были слишком юны. Предположим, нужно удалить все записи, которые старше 31 августа 2016 года. Проходим по ссылке «Записи сообщества» и переходим к поиску по записям — ссылка в меню справа.

как удалить посты из группы или паблика вконтакте

Теперь в поисковой строке мы видим иконку календаря. Она нам и нужна.

как удалить посты из группы или паблика вконтакте

Задаем нужную дату.

как удалить посты из группы или паблика вконтакте

Теперь нужно прокрутить результаты поиска как можно ниже, открыть консоль, ввести в нее третий скрипт и подтвердить действие.

Добавить комментарий


Пятый элемент блогосферы © 2015