Как в вк сохранить запись себе на стену: Как перенести себе на стену в контакте

vk.com — Сохранение аудиозаписей, документов, содержимого стены / Хабр

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

на случай ядерной войны

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

Цели

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

или котиков

. Сразу скажу, что в моих целях не было читабельного бэкапа дополнительной информации (лайки, время создания записи и прочее).

За дело!

Процесс создания подобного приложения уже не разописан на хабре, поэтому повторять все подробности не стану, опишу шаги работы вкратце, а еще скажу пару слов о пролемах. Чтобы статья не была перегружена исходниками, в конце будет ссылка на github.

Соображения по ходу разработки

  • Прежде всего, потребуется завести себе id приложения. Важно, чтобы тип был standalone, иначе некоторые методы vk api будут недоступны.
  • Еще нужен id пользователя, данные которого будем сохранять. Свой найти можно на странице настроек
  • Чтобы приложение работало, нужно разрешение пользователя, а точнее, access token. Прямого неинтерактивного способа получить токен нет, можно парсить страницу авторизации, но проще — попросить пользователя нажать на кнопку в браузере и скопировать url. За это отвечает функция auth():
        url = "https://oauth.vk.com/oauth/authorize?" + \
              "redirect_uri=https://oauth. vk.com/blank.html&response_type=token&" + \
              "client_id=%s&scope=%s&display=wap" % (args.app_id, ",".join(args.access_rights))
        print("Please open this url:\n\n\t{}\n".format(url))
        raw_url = raw_input("Grant access to your acc and copy resulting URL here: ")
        res = re.search('access_token=([0-9A-Fa-f]+)', raw_url, re.I)
    

  • У запросов vk api есть ограничение: не более пяти в секунду. Если обращаться к серверу слишком часто, он ответит ошибкой. Это достаточно удобно: по коду ошибки можно понять, что скрипт работает слишком быстро, подождать какое-то время и повторить запрос.
            if result[u'error'][u'error_code'] == 6:  # too many requests
                    logging.debug("Too many requests per second, sleeping..")
                    sleep(1)
                    continue
    

  • Периодически сервер vk требует решить каптчу, подозревая, что клиент — бот. В общем-то, правильно подозревает. Чтобы процесс сохранения не прерывался, приходится просить пользователя перейти по ссылке на картинку, разгадать каптчу и вбить ответ. +=\-()$!#%&,.\w\s]’, ‘_’, name, flags=re.UNICODE).strip())
  • Еще одна проблема с именами файлов: могут совпадать, например в случае с документами. Для этого к имени файла добавим (n), где n — первое число, дающее уникальное имя файла.
    #file might exist, so add (1) or (2) etc counter = 1 if exists(fname) and isfile(fname): name, ext = splitext(fname) fname = name + " ({})".format(counter) + ext while exists(fname) and isfile(fname): counter += 1 name, ext = splitext(fname) fname = name[:-4] + " ({})".format(counter) + ext

Продолжим

Код обращения к api взят из статьи хабраюзера dzhioev, и добавлена обработка ситуаций, описанных выше. Чтобы было, что сохранять (в случае с обработкой стены), надо сначала узнать количество постов:

        #determine posts count
        (response, json_stuff) = call_api("wall.
get", [("owner_id", args.id), ("count", 1), ("offset", 0)], args) count = response[0]

Дальше запрашиваем каждый пост по отдельности и разбираем его

        for x in xrange(args.wall_start, args.wall_end):
            (post, json_stuff) = call_api("wall.get", [("owner_id", args.id), ("count", 1), ("offset", x)], args)
            process_post(("wall post", x), post, post_parser, json_stuff)

Результат запроса — это набор данных в JSON, которые разбираются в стандартные для python’а структуры с помощью json.loads() из стандартной библиотеки. В итоге, имеем хэш-массив, в котором некоторые поля (ключ-значение) несут полезную нагрузку, а остальные нас не интересуют. Чтобы руками не писать, какое поле каким методом обрабатывать, воспользуемся мощью рефлексии: будем искать метод, имя которого совпадает с интересующим ключом.

        for k in raw_data.keys():
            try:
                f = getattr(self, k)
                keys.
append(k) funcs.append(f) except AttributeError: logging.warning("Not implemented: {}".format(k)) logging.info("Saving: {} for {}".format(', '.join(keys), raw_data['id'])) for (f, k) in zip(funcs, keys): f(k, raw_data)
Парсим

Теперь нужно разбираться с полями ответа. Интересные — это attachments, text, comments. Attachments — это список приложений к посту (аудио, картинки, документы, заметки), надо уметь скачивать каждый тип. Определяемся, каким методом обрабатывать каждый attachment, аналогичным способом: по типу аттача ищем метод с подходящим именем. Вот пример «качалки» для аудио:

    def dl_audio(self, data):
        aid = data["aid"]
        owner = data["owner_id"]
        request = "{}_{}".format(owner, aid)
        (audio_data, json_stuff) = call_api("audio.getById", [("audios", request), ], self.args)
        try:
            data = audio_data[0]
            name = u"{artist} - {title}.
mp3".format(**data) self.save_url(data["url"], name) except IndexError: # deleted :( logging.warning("Deleted track: {}".format(str(data))) return # store lyrics if any try: lid = data["lyrics_id"] except KeyError: return (lyrics_data, json_stuff) = call_api("audio.getLyrics", [("lyrics_id", lid), ], self.args) text = lyrics_data["text"].encode('utf-8') ...

К сожалению, изъятые по просьбе правообладателей аудиозаписи больше не доступны, для них возвращается пустой ответ.

А остальное?

Методы обработки картинок, текста, заметок, закачки документов и остальное — в github. Скажу только, что все аналогично приведенным примерам. Еще скрипт имеет аргументы командной строки, их описывать в статье смысла нет. Примеры и прочие подробности — в readme.

TODO

Я не стал делать сохранение фотоальбомов, потому что у меня там ничего важного не хранится, да и код kilonet из его статьи неплохо работает. Еще не сохраняются видеозаписи и заметки, мне это показалось не сильно нужным.

На последок

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

UPD 18.12.2016

Юзер hiwent говорит, что с 16.12.2016 года vk закрыли возможность использовать API для работы с аудиозаписями. В связи с этим, функционал скрипта, предусмотренный для сохранения аудиозаписей, не работает. В связи с этим можно попробовать «прикинуться» родным приложением vk, апример андроид-версией, или kate mobile. Для них возможность работать с аудиозаписями никуда не пропадет, хотя может быть методы отличаются.

«Почему стало модно у пользователей «ВКонтакте» держать стены пустыми?» — Яндекс Кью

Популярное

Сообщества

ОбществоИнтернет+3

Кристина Знакомая

  ·

73,9 K

Ответить2Уточнить

Виктория Сурина

Маркетинг

279

SMM-cпециалист. Занимаюсь продвижением бизнесов ВКонтакте, специализируюсь на создании и…  · 26 июл 2020  ·

victorysmm

Дело в том, что страница в ВК превратилась из средства самовыражения в практически официальный документ) Страничку смотрят и родственники, и клиенты, и работодатели, и банки, и знакомые, и дети, и ученики, и родители учеников, и ФСБ, коненчо.

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

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

Контент и копирайтинг для ВКонтакте. Курсы и тексты)

Перейти на vk.com/victorysmm

Комментировать ответ…Комментировать…

Аркадий Ковальчук

16

работаю на заводе, заполняю талоны на полставки  · 26 мая 2020

У меня на стене было как-то оочень много записей из пабликов по типу «смеяка приколы чо». Стыдно это видеть у себя на странице в 2020? (а точнее в 2018 это было). Ещёё бы. Ну вот я однажды наткнулся на видео «как очистить всё из вк». Ввёл команды из видеоролика в консоль кода элемента и всёё. Стена чистая и без всякого стыда и позора. Ну, а хотя можно использовать… Читать далее

Комментировать ответ…Комментировать…

Теодор Балюнас

238

Дворник, фотограф, психолог без диплома   · 2 нояб 2019

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

Аватарки ставлю уже, которые указывают на нужные мне вещи, либо те, по которым меня не будут судить по внешности как любят многие, особенно… Читать далее

Комментировать ответ…Комментировать…

Вероника Лукьянова

176

Студент  · 15 июл 2017

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

Денис Злыгостев

15 июля 2017

Вкратце и понятно!
У меня ещё и аватарка отсутствует!)))

Комментировать ответ…Комментировать…

Анастасия Боденчук

208

Филолог  · 15 июл 2017

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

Лев Шутов

17 июля 2017

У меня стена пустая с 2015 года :м

Комментировать ответ…Комментировать…

Сергей Федоров

110

Студент  · 15 июл 2017

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

Delete Delete

17 августа 2017

Для справедливости стоит заметить, что далеко не только в нашей

Комментировать ответ…Комментировать…

Даниил Ерохин

23

Бог  · 19 окт 2017

Держу стену чистой, так как не вижу смысла что-то постить/репостить, ведь те, кому надо и так знают, что происходит в моей жизни (на уровне дозволенного, конечно), а те, кому не надо, соответственно, не знают. Сохранить что-то для себя я могу и без репоста, скинув себе данную запись себе в лс.  Был бы я медийной личность, я бы обязательно что-то публиковал, дабы ажиотаж… Читать далее

Комментировать ответ…Комментировать…

Ольга Разгуляева

31

Студентка математического факультета  · 22 февр 2018

Это просто определенный тип людей такой, к которому я тоже отношусь. Мне иногда просто хочется «навести порядок» на странице, от этого получаешь  визуальное удовольствие. Да и, например, то что я постила год назад-мне не нравится уже или не нужно. Зачем это хранить?

Комментировать ответ…Комментировать…

Настя Каплан

34

девочка по прозвищу «профессорка гендерной теории»  · 12 нояб 2017

В дополнение ответам выше, есть люди (я), которые считают пустую/с одной-двумя записями страницу эстетичной, красивой. Можно разместить, например, мотивирующую цитату или «девиз по жизни». Как пример: Читать далее

Комментировать ответ…Комментировать…

Полина Савченко

512

по(на)ехавшая студентка в Норвегии  · 2 окт 2017

Во-первых, некоторые жалуются на засоренную ленту, вот иные люди и решают особо ничего не постить, чтобы не раздражать френдов. Во-вторых, это можно понять как посыл заходящим на страницу о том, что ты не расположен делиться своими пристрастиями с рандомной аудиторией. Ещё таким образом можно немного выпендриться, как бы намекнув, что твоя жизнь в оффлайне достаточно… Читать далее

18,7 K

Комментировать ответ…Комментировать…

Как сохранить стену Facebook | Small Business

Лори Свенсон

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

Сохранить вручную

  1. Перейдите на Facebook и перейдите на свою стену или стену, которую хотите сохранить. Перейдите в нижнюю часть страницы и нажмите «Старые сообщения» столько раз, сколько необходимо, чтобы отобразить весь контент, который вы хотите сохранить.

  2. Нажмите «Файл» в верхнем меню и выберите «Сохранить страницу как» в контекстном меню. Назовите страницу как хотите. В раскрывающемся меню «Тип файла» под именем файла выберите «Веб-страница, полная», если этот параметр еще не выбран.

  3. Нажмите кнопку «Сохранить», чтобы сохранить страницу в нужную папку на жестком диске. Страница будет сохранена как отдельный файл с подпапкой, содержащей нетекстовые элементы, такие как фотографии и графика. Эта вложенная папка должна оставаться нетронутой, чтобы вы могли просматривать страницу в том виде, в котором она появилась на Facebook.

Тщательное сохранение Facebook

  1. Создайте резервную копию данных Facebook, чтобы сохранить всю стену. Войти в Facebook. Нажмите стрелку в правом верхнем углу страницы рядом с кнопкой «Домой» и прокрутите вниз до «Настройки учетной записи». Нажмите «Загрузить копию ваших данных Facebook». Затем нажмите «Начать мой архив».

  2. Когда ваши данные будут готовы к архивированию, вы получите электронное письмо. Это может занять 30 минут или целый день, в зависимости от того, сколько данных содержит ваша учетная запись.

  3. Откройте электронное письмо от Facebook, когда оно придет, и щелкните ссылку для скачивания, встроенную в сообщение. Выберите «Сохранить файл» в открывшемся меню и выберите папку назначения для вашей истории Facebook. Полученный файл будет включать информацию вашего профиля, содержимое вашей стены (или временной шкалы), фотографии и видео, которые вы загрузили на Facebook, список ваших друзей, заметки, события, на которые вы ответили, и ваши сообщения Facebook.

Ссылки

  • TechCrunch: Facebook One-Ups Google с помощью своего рода «Facebook+»: ваша электронная почта FB, имена в хронологии теперь связаны
  • Facebook: загрузите вашу информацию

Советы

  • 900 страницы могут предоставить вам быстрый доступ к фотоальбомам, которыми вы можете поделиться с пользователями, не являющимися пользователями Facebook.
  • Предупреждения

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

    Писатель Биография

    Лори Свенсон — давний журналист из Миннесоты. С 2004 по 2013 год она была репортером и редактором газеты Bemidji Pioneer, а с 1992 по 2003 год — спортивным редактором Crookston (Minn. ) Daily Time. Она получила несколько наград Миннесотской газетной ассоциации, в том числе первое место за статью об искусстве и развлечениях в 2012 году. Du kannst deinesuchsprache in den Einstellungen ändern.

    Einfach VK Videos und Music Downloaden — Savefrom.net

    de.savefrom.net Видео, музыка и фотографии от ВКонтакте. Nutzen dazu einfach das praktische Add-on SaveFrom.net Helper для браузера. Es …

    Загрузчик видео ВКонтакте онлайн — MP3, MP4, HD!

    www.downloadvideosfrom.com › …

    Перейдите к видео ВКонтакте, которое хотите скачать. Скопируйте URL-адрес видео и вставьте его в поле на этой странице. Выберите между загрузкой видео в обычном качестве (MP4), …

    Скачать ВКонтакте Аудио и Видео — PasteDownload

    pastedownload.com › vk-downloader

    Лучший бесплатный онлайн-загрузчик видео ВКонтакте (как публичное, так и приватное видео). Скачивайте и сохраняйте видео ВК бесплатно без ограничения скорости. Просто вставьте URL-адрес и загрузите …

    Онлайн-загрузчик видео ВКонтакте бесплатно Mp4 — GiveFastLink

    givefastlink.com › vk-video-downloader

    1- Скопируйте URL-адрес видео ВКонтакте. Просмотрите и найдите видео ВКонтакте, которое хотите скачать. · 2- Вставьте URL-адрес видео ВКонтакте · 3- Загрузите лучшее качество и сохраните его!

    VK Video Downloader — Скачать видео с ВКонтакте в высоком качестве!

    www.vkdownload.one

    С помощью VKDownload.one вы можете легко загружать видео из ВКонтакте и сохранять их на своем устройстве для последующего воспроизведения. Это полезно, когда вы находитесь в пути или в …

    VK Video Downloader — VKontakte MP4 & MP3 — SteptoDown

    steptodown.com › vk-video-downloader

    Сохраняет ли этот сайт видео, которые я выбрать скачать? Наши условия конфиденциальности очень просты. Инструмент для загрузки видео с ВКонтакте просто служит мостом между вашими …

    Vk Video Downloader — SaveFrom. net — Y2bs

    y2bs.com › vk-video-downloader

    Шаг 1: Запустите приложение ВКонтакте и найдите видео, которое хотите сохранить, нажмите кнопку «Поделиться» под дисплеем и выберите Копировать ссылку. Шаг 2 : Вставьте ссылку в белый …

    Онлайн-загрузчик видео ВКонтакте для MP4 и MP3 бесплатно

    fastsavenow.com › vk-video-downloader

    1. · Скопировать URL-адрес видео ВКонтакте · 2 · Поместите URL-адрес в поле загрузки · 3. · Загрузите и сохраните файл. · Часто задаваемые вопросы о VK Downloader …

    Как скачать видео из ВКонтакте — Полное руководство — MiniTool MovieMaker

    moviemaker.minitool.com › Советы по созданию фильмов

    11.12.2022 · 1. 9xbuddy. 9XBUDDY — это популярный онлайн-загрузчик видео, способный загружать видео со многих социальных платформ, таких как ВКонтакте, YouTube, …

    Скачивайте и сохраняйте видео ВКонтакте быстро и бесплатно! — TubeOffline

    www.tubeoffline.

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

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

    Закрыть
    Menu