Граббер и автопостинг Вконтакте на PHP

Обновление! В связи с частыми просьбами помочь с граббером и постером в ВК, принял решение обновить его под новые методы VK API (актуально на 11 сентября 2022 года).

Теперь скрипт умеет:
[+] Загружать и выгружать все фотографии из записи на вашу страницу в высоком разрешении;
[+] Работать с видео на стене и выгружать его в ваше сообщество;
[+] Все записи идут в отложку +3 часа с момента парсинга;
[+] К записям добавляется ссылка на источник, чтобы не получать предупреждения от администрации Вконтакте.

[-] Из скрипта убрал возможность наложения водяного знака на фотографии. Функционал доступен в старой версии скрипта по адресу: https://yakovtsov.ru/files/vkgrab_old.zip

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

Задачи которые выполняет скрипт

У вас есть сообщество в ВК и вам необходимо его наполнять контентом, но делать руками этого не хочется. Вы выбираете несколько тематических сообществ, настраиваете скрипт и ваше сообщество начинает наполняться контентом в автоматическом режиме.

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

Что умеет скрипт граббера и автопостинга

В выбранный промежуток времени проверять список указанных сообществ на наличие новых постов, копировать текст, фото, видео и другую информацию в ваше сообщество. Копирование вложений происходит с помощью перезагрузки через ваш сервер, на котором на изображения накладывается водяной знак – watermark (актуально в старой версии скрипта), после чего запись размещается в вашем сообществе.

Настройки граббера Вконтакте

Настройки граббера/парсера не вызовут у вас сложностей, достаточно делать все по инструкции которая размещена ниже.

  1. Регистрируем новый хостинг с поддержкой PHP7 и MySQL. Буду благодарен если зарегистрируетесь по моей реферальной ссылке: https://www.reg.ru/?rlink=reflink-42469
  2. Делегируем домен на хостинг
  3. Скачиваем архив со скриптом https://yakovtsov.ru/files/vkgrab.zip
  4. Распаковываем архив у себя на хостинге
  5. Создаем новую базу данных и заливаем в нее файл бэкапа – vkgrab.sql
  6. Открываем файл bot.php и вносим в него следующие настройки:

6.1. Настраиваем подключение к базе данных. Указываем имя пользователя, пароль и имя базы данных

6.2. Получаем сервисный ключ доступа. Для этого переходим по ссылке https://vk.com/apps?act=manage , нажимаем “Создать приложение” и заполняем данные: название, платформа = сайт, адрес сайта, базовый домен и нажимаем “подключить сайт”.

Переходим в настройки и копируем сервисный ключ доступа

Вставляем сервисный ключ доступа в переменную $vk_service_key

6.3. Получаем токен для работы с API Вконтакте. Переходим по адресу предварительно подставив свои данные (номер телефона и пароль):

https://api.vk.com/oauth/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=НОМЕР-ТЕЛЕФОНА&password=МОЙ-ПАРОЛЬ

Если у вас двухфакторная авторизация, то переходим по ссылке redirect_uri

Вводим код доступа и нажимаем “Отправить код”

Откроется новая страница

Из адресной строки копируем все что после &access_token= и до &user_id=

Вставляем токен в переменную $vk_user_token

6.4. Вставляем ID  вашего сообщества в переменную $vk_public_id. Чтобы узнать ID вашего сообщества – откройте ваше сообщество и перейдите в раздел “Статистика”. В адресной строке все что после stats?gid= и есть ID вашего сообщества;

6.5. Вставляем ID пользователя в переменную $vk_user_id (с помощью которого был получен токен и который является администратором сообщества куда будет происходить постинг). Чтобы узнать ID пользователя, перейдите в раздел “Музыка”. Все что после audios и есть ID пользователя.

6.6. Добавляем список сообществ для парсинга. Домены сообществ добавляем через запятую в кавычках как показано в примере.

Узнать домен можно открыв страницу сообщества. Все что после https://vk.com/… и есть домен сообщества.

6.7. Сохраняем файл bot.php

7. Открываем адрес https://site.ru/vkgrab/bot.php, после чего в вашем сообществе должна появиться новая запись.

8. Добавить свой водяной знак можно заменив файл wm.png

9. Настроить публикацию поста можно на 171 строке в файле bot.php

На этом настройка скрипта завершена. Теперь при обращении к скрипту в вашем сообществе будет появляться новая запись.

Настройки автопостинга Вконтакте

После того как скрипт заработал нам необходимо настроить автопостинг. Для этого мы будем использовать планировщик заданий CRON. Я покажу на примере ISPmanager.

  1. Переходим в “Планировщик” и создаем новое задание
  2. В поле команда вставляем: wget -q -O – https://site.ru/vkgrab/bot.php > /dev/null 2>&1
  3. Выполнять – каждый час (можно выбрать любой промежуток)

После настройки планировщика в нашем сообществе ежечасно будет появляться новый контент.

Если у вас возникнут трудности с настройкой, пишите в комментариях или мне в телеграм.

9 комментариев
  1. Здравствуйте. Не публикует изображения и видео с постов. Слышал что api vk изменился…

    1. Добрый вечер! Проверьте права на папку куда сохраняете изображение, если проблема останется, попробуйте изменить версию API в скрипте

  2. Возможно ли настроить граббер для получения и публикации постов в раздел для донов? Т.е. грабим из раздела для донов и публикуем в свой паблик в такой же раздел?

  3. Добрый день. А подскажите пожалуйста, давно скрипт проверяли? попробовал подключить, но похоже есть какие-то проблемы…получаю ошибку: “error”:{“error_code”:214,”error_msg”:”Access to adding post denied: cannot postpone post”,”request_params”……………….
    Буду благодарен, если поможете найти в чем ошибка…

    1. Добрый день! Возможно это доступ к посту закрытой группы или для тех кто донаты оставляет?

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *