В этой статье напишем небольшой скрипт-поисковик постов в группе ВКонтакте, написанных от имени конкретного пользователя. Скрипт может быть полезен, если в сообществе очень много записей и искать нужную ручками просто физически невозможно.
Поскольку в ВК нет возможности устанавливать фильтры при поиске записей - придётся найти какое-то иное решение. Да, можно было бы воспользоваться методом wall.get VK API, вытянув список всех постов, а далее уже выбрать из объекта только то, что нужно нам. Но, увы, тут имеются свои системные ограничения от ВК:
И первое, что пришло в голову, так это автоматизировать ручной поиск с помощью JаvaScript. Скажу сразу, поиск не будет мгновенным, но всё же это лучше, чем скроллить ручками :)
Принцип действия будет простым - скрипт за нас будет скролить стену сообщества и проверять, совпадает ли заданное нами имя пользователя с именем автора поста (в подписи). Если в группе посты публикуются от имени юзеров без подписи - выборку нужно будет немного переделать.
И вот, собственно, сам скрипт:
var name = 'Иван Иванов';
var func = setInterval(() => {
var authors = document.querySelectorAll('.wall_signed_by');
authors.forEach(function(element) {
if (element.innerText == name)
{
var parent = element.closest('._post_content');
console.log(parent.querySelector('.post_link').href);
clearInterval(func);
}
});
window.scrollBy(0, 25000);
}, 100);
В переменную name необходимо вбить имя и фамилию человека, посты которого нас интересуют. Ниже расположена функция setInterval() с интервалов в 100мс (со значениями можно поиграться и подобрать оптимальное). Искать имя мы будем в подписи, а далее просто переберём все элементы выборки и проверим наличие имени, которое записано в переменной name. Если имя найдено - останавливаем сетИнтервал и выводим в консоль ссылку на найденную запись. После цикла страницу необходимо проскроллить примерно на 20 постов вниз, поэтому ставлю приблизительное значение в 25 тысяч пикселей.
Также сразу стоит учесть, что каждый раз количество постов в объекте authors будет увеличиваться, следовательно поиск будет замедляться. Впрочем, время ожидания "компенсируется" автоматизацией)
Чтобы запустить скрипт - перейдите по ссылке https://vk.com/wall-XXXXX?own=1, где XXXXX - айди группы, откройте консоль, вставьте скрипт и нажмите enter:
Всё, осталось только подождать, пока закончится скролл и в консоли появится ссылка.
Перед публикацией, советую ознакомится с правилами!
Нашли ошибку?
Вы можете сообщить об этом администрации.
Выделив текст нажмите CTRL+Enter