Скрипт экспорта всех постов открытого/закрытого сообщества VK в HTML файл

Bot

Администратор
Команда форума
23 Янв 2020
146,077
897
113
Возможно будет полезно оргам, которые организуют складчину на зкрытое вк сообщество. Есть складчина (доступ к закрытой группе вк), которую никак не могут организовать по причине того, что по правилам складчика нужно выкачивать весь материал с закрытого сообщества вк, а постов в закрытой группе много. Один орг писал администрации с вопросом можно ли сделать сборку браузера, ответ был что нужно закачивать весь материал в облако. Для этих целей написал скрипт, который автоматически выкачает все посты с закрытой группы вк.
Скрипт экспорта всех постов открытого/закрытого сообщества VK в HTML файл
Инструкция


  • Создаем standalone-приложение по этой ссылке
  • На странице приложения переходим в "Настройки" и копируем ("ID приложения", "Защищённый ключ") они понадобятся нам далее
  • Формируем ссылку. Заменяем "ID_приложения" на "ID приложения" из второго пункта. И переходим по ссылке.
    oauth.vk.com/authorize?clie...cope=offline,video&response_type=code&v=5.131
  • Нажимаем разрешить и копируем из адресной строки "Code из адресной строки". Если адресная строка выглядит так
    oauth.vk.com/blank.html#code=1d45312392343fhry4
    то записываем что "Code из адресной строки" равен "1d45312392343fhry4", он понадобится нам далее
  • Формируем ссылку. Заменяем "ID_приложения" на "ID приложения" из второго пункта, "Защищённый_ключ" на "Защищённый ключ" из второго пункта, "Code_из_адресной_строки" на "Code из адресной строки" из четвертого пункта. И переходим по ссылке
    oauth.vk.com/access_token?c...люч&redirect_uri&code=Code_из_адресной_строки
  • Записываем "Access Token". Если страница выглядит так
    {"access_token":"hs735ufuf8oeknsh3601dud76d8c7dd8f88r9e08v7d6d5sfxhjd6eke8rof7vyfuw62lmc7e49ye540fh62h","expires_in":0,"user_id":165151515}
    то записываем что "Access Token" равен "hs735ufuf8oeknsh3601dud76d8c7dd8f88r9e08v7d6d5sfxhjd6eke8rof7vyfuw62lmc7e49ye540fh62h"
  • Узнаем "ID сообщества", которое хотим спарсить. Переходим в сообщество, например в это, открываем любую фотографию сообщества, и смотрим на адресную строку, если адресная строка выглядит так
    vk.com/tourskidkanoginsk?z=photo-21694623_457257846/wall-21694623_11753
    то "ID сообщества" будет равно "21694623" (т.е. все что между "photo-" и "_")
  • Узнаем "Кол-во записей в сообществе".
    Либо можно подставить заранее большое число. Т.е. если в сообществе предположительно 1000 постов, можно указать 5000.
    Но если нужно узнать точное кол-во, то для этого формируем ссылку
    Заменяем "ID_сообщества" на "ID сообщества" из седьмого пункта, заменяем "Access_Token" на "Access Token" из шестого пункта
    api.vk.com/method/wall.get?...&v=5.131&filter=all&access_token=Access_Token
  • Переходим по ссылке. Если страница выглядит так
    {"response":{"count":7369,"items":...
    то "Кол-во записей в сообществе" равно 7369
  • Заливаем две папки на хостинг: "vk_to_xml" и "xml_to_html". Берем их от сюда
  • Запускаем тестовый парсинг из сообщества vk в xml. Для этого формируем ссылку.
    Заменяем "Путь_до_папки_со_скриптом" на "Путь до папки со скриптом" куда залили на хостинг, "ID_сообщества" на "ID сообщества" из седьмого пункта, заменяем "Access_Token" на "Access Token" из шестого пункта\ Путь_до_папки_со_скриптом/vk_to_xml/index.php?id=-ID_сообщества&access_token=Access_Token
    Если на странице отобразился контент группы, значит все сделали правильно.
  • Запускаем парсинг всех постов группы, для этого формируем ссылку.
    Заменяем "Путь_до_папки_со_скриптом" на "Путь до папки со скриптом" куда залили на хостинг, "ID_сообщества" на "ID сообщества" из седьмого пункта, заменяем "Access_Token" на "Access Token" из шестого пункта, заменяем "Кол-во_записей_в_сообществе" на "Кол-во записей в сообществе" из девятого пункта
    Путь_до_папки_со_скриптом/v...ccess_Token&count=Кол-во_записей_в_сообществе
  • Лимиты. При парсинге вк отдает 100 постов за 1 запрос. Лимит 1 запрос в секунду. Т.е. сообщество с 6000 постами будет выкачиваться примерно 60 секунд
  • Когда браузер завершит загрузку, сохраняем страницу (Ctrl+S) в файл "feed.xml"
  • Заменяем скачанный файл "feed.xml" в папке "xml_to_html"
  • Открываем страницу с постами.
    Заменяем "Путь_до_папки_со_скриптом" на "Путь до папки со скриптом" куда залили на хостинг
    Путь_до_папки_со_скриптом/xml_to_html/
    Логин: "user"
    Пароль: "pass"
Пример результата парсинга:
nevep.ru/tmp/vk_to_html/xml_to_html/
Логин: "user"
Пароль: "pass"
Актуальная вресия и обновления всегда будут тут: github.com/nevstas/vk_to_html