Время идет и появляются задачи убрать всё что вы накидали в свои видео или запостили в своей группе. Бывает такая задача и у меня на днях она тоже возникла. Пришлось основательно покопаться, так как добавленные когда то 4500 видео в личных видео и забитая группа требовали либо кучу нужной работы, либо применить голову и массово всё почистить. Я решил выбрать второе, потратив с полчаса на первый вариант и вот что у меня получилось.
Итак исходные данные номер 1. Группа, у которой я меняю тематику и в которой порядка 6000 постов опубликовано, надо их все убрать. Используем для этого скрипт или скорее 2 скрипта даже, в зависимости от задачи.
1 скрипт массовой очистки группы в Контакте: порядок работы.
Вы можете удалить все записи со страницы буквально в пару кликов. Для этого проделайте следующие шаги:копируйте данный код
1 |
var test = false, offset = 50, pause = 1, count = 0;function itit() {offset = prompt('Кол-во первых записей которые нужно оставить.nУбедитесь что на странице есть больше больше чем указанное кол-во', 50);pause = prompt('Пауза в секундах перед запросами (рекомендуем 1-10)', 1);test = confirm("Вы подтверждаете что хотите удалить все записей в группе/странице?nКроме первых "+offset+"nnНаблюдать за процессом можно в консоли (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(); |
откройте нужную группу или страницу Вконтакте (у вас должны быть права на удаление записей)
вставьте скопированный код в консоль (F12 > console) и нажмите Enter
скрипт даст вам настроить отступ в удалении постов и паузу между действиями. После чего попросит подтвердить действия;
После того как вы подтвердили своё желание удалить все записи, скрипт начнёт свою работу. В этот момент нельзя будет ничего делать на открытой вкладке. Вы можете просто свернуть её и заниматься своими делами.
Теперь как очистить видео в своём аккаунте. Промотайте как можно больше и вставьте в консоль вот такой код
1 2 3 4 5 |
a = document.getElementsByClassName('video_thumb_action_delete'); for(i = 0; i < a.length; i++) { a[i].click(); } |
Обновление 10 декабря 2024 при проверке очистки от старых постов в группе увы не работал старый код. Пришлось написать новый
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
(() => { var offset = parseInt(prompt('Сколько первых записей оставить?', '50'), 10); if (isNaN(offset)) offset = 50; var pause = parseInt(prompt('Пауза между удалениями (в секундах)?', '1'), 10); if (isNaN(pause)) pause = 1; if (!confirm(`Вы уверены, что хотите удалить все записи, кроме первых ${offset}?`)) { console.log('Удаление отменено пользователем'); return; } function getPosts() { // Ищем все посты по классу _post. Если не работает, подберите другой селектор, // основываясь на структуре DOM (например, data-post-id). return Array.from(document.querySelectorAll('div._post')); } function scrollUntilEnoughPosts() { window.scrollTo(0, document.body.scrollHeight); var posts = getPosts(); console.log(`Загружено постов: ${posts.length}, нужно хотя бы: ${offset * 2}`); if (posts.length < offset * 2) { setTimeout(scrollUntilEnoughPosts, 1500); } else { setTimeout(deletePosts, 1500); } } function deletePosts() { var posts = getPosts(); var toDelete = posts.slice(offset); console.log(`Будет удалено ${toDelete.length} пост(ов).`); function deleteNext(i) { if (i >= toDelete.length) { console.log('Удаление завершено!'); return; } var post = toDelete[i]; post.scrollIntoView(); // Ищем кнопку меню поста по data-testid="post_context_menu_toggle" var menuButton = post.querySelector('button[data-testid="post_context_menu_toggle"]'); if (!menuButton) { console.warn(`Не найдена кнопка меню для поста №${i}, пропускаем...`); return deleteNext(i + 1); } menuButton.click(); // Ждём появления меню setTimeout(() => { // Ищем пункт "Удалить" по тексту // Меню может быть в другом месте документа, поэтому ищем глобально. // Можно отфильтровать элементы, например, по общему классу, если известен. var candidates = Array.from(document.querySelectorAll('.vkuiSimpleCell, .ui_actions_menu_item, .DropdownItem, [role="button"]')); var deleteItem = candidates.find(el => el.innerText.trim() === 'Удалить' || el.innerText.includes('Удалить')); if (!deleteItem) { console.warn(`Не найдена кнопка "Удалить" для поста №${i}, пропускаем...`); return deleteNext(i + 1); } deleteItem.click(); // Ждём диалог подтверждения (если есть) setTimeout(() => { var confirmButtons = document.querySelectorAll('button, .FlatButton, .flat_button'); var confirmBtn = Array.from(confirmButtons).find(btn => btn.innerText.includes('Удалить') || btn.innerText.includes('Yes') ); if (confirmBtn) { confirmBtn.click(); } setTimeout(() => { deleteNext(i + 1); }, pause * 1000); }, 500); }, 1000); } deleteNext(0); } scrollUntilEnoughPosts(); })(); |
После удаления всех записей со страницы, вы можете начать публиковать новый контент, соответствующий новой тематике группы. Это поможет привлечь новую аудиторию и поддерживать активность в группе.
В чем заключается основная задача, с которой автор столкнулся при очистке своих видео и группы?
Какие два скрипта используются для массовой очистки группы в социальной сети «Контакте»?
Какие шаги необходимо выполнить для удаления всех записей из группы в Контакте?
Какие скрипты использовались для очистки группы в Контакте и какие параметры нужно было указать?
Как можно удалить все записи со страницы группы ВКонтакте и каким образом использовать скрипт?
Учитывая ваш опыт с массовой очисткой контента в группе, интересно, что вы упомянули использование скриптов для решения такой задачи. Возможно, вы могли бы более подробно объяснить, каким образом работает ваш скрипт и какие сложности возникли в процессе его реализации? Например, какие ограничения могли возникнуть при использовании API ВКонтакте, например, лимиты на количество запросов за определённый период времени?
Кроме того, стоит отметить, что при использовании таких методов существует риск удаления важных постов или информации, которые вы, возможно, захотите сохранить. Использовали ли вы какие-то механизмы для резервного копирования данных перед их удалением? Например, возможно, имела смысл автоматизировать процесс, создавая архив с содержимым группы перед его очисткой.
И, как вариант, можно было бы обсудить альтернативные решения для управления контентом. Например, существуют ли специализированные инструменты или плагины, которые могут облегчить процесс удаления постов, или вы предпочитаете именно кодовые решения? Это может быть полезно для других людей с аналогичной задачей.