Как сохранить фотографии из диалога Вконтакте на компьютер

Вчера мне понадобилось скачать все фотографии из диалога с одним человеком в vk.com. Фотографий было больше 1000 штук. Понятное дело, что ручками это все делать было бы утомительно и… Стыдно. Не для того программированием занимаюсь, чтобы такую грязную работу делать не автоматизированно. Поэтому было решено написать скрипт.

В качестве языка был выбран Python. Его удобно использовать для консоли, он довольно быстрый, есть модуль urllib, позволяющий «одним движением» скачивать картинки по ссылке. Но главная причина — это то, что я начал изучать его недавно. Решил дополнительно попрактиковаться.

Сам скрипт получился небольшой, но было бы интересно описать процесс создания. Буду стараться писать побольше комментариев в коде, чтобы те, кто не знает python, тоже смогли понять процесс. А от знатоков очень приветствуются советы и указания. Итак, приступим.

«Вконтакте» не предоставляет API конкретно для скачивания материалов из беседы, поэтому самое долгое время заняло изучение того, как устроена система подгрузки картинок из диалога в vk.com. Все картинки лежат у них, понятное дело, на сервере, и доступ к ним имеет любой, у кого есть ссылка на эту картинку. Таким образом, чтобы скачать все фотографии из диалога, нам надо получить все ссылки на картинки. Тыкаясь туда-сюда, было выяснено, что при нажатии на «Действия -> показать материалы из беседы» отправляется POST запрос на vk.com/wkview.php . Запрос содержит параметры:

Как скачать фото с ВК на компьютер или телефон

  • act:show
  • loc:im
  • w:history _photo

16515 wkview.js,wkview.css,page.js,page.css,page_help.css 0 6590 0

Фотографии в переписке с ЮЗЕР_НЭЙМ
. (и еще много ссылок с картинками)
Список пуст.
Показать еще

Из всего этого нам интересны только ссылки, которые находятся внутри , а так же json на конце. Я был не до конца честен, говоря, что POST запрос принимает 4 параметра. Точнее, он принимает, но если его выполнить нам выдадутся только первые несколько фотографий. Так как vk.com имеет подгрузку контента по мере прокручивания страницы, то существует параметр offset, который отвечает за то, какую часть из всего множества фотографий нам подгрузить. В итоге параметры запроса выглядят вот так:

  • act:show
  • loc:im
  • w:history _photo
  • offset: offset
  • part: 1

Кстати, а что насчет выполнения запросов? Как нам получить доступ к своей странице? Было выяснено, что доступ к странице может получить тот, у кого есть cookie под названием remixsid. Таким образом нам надо подставить эту куку в функцию, которая выполняет запрос и все получится. Безопасно?

Не совсем, швыряться куками — это не есть хорошо, но я не нашел другого варианта. Если кто-то знает, напишите пожалуйста.

Общий алгоритм вроде понятен: сделать запрос, вытащить ссылки, записать их в файл, проверить-
новый offset>count?-, если нет, то присвоить offset новое значение и выполнить запрос с ним, если да, то выйти из цикла. Затем пройтись по всем ссылкам в файле и скачать картинки лежащие по их адресу. Начинаем писать код.

Как скачать все фотки из диалога ВКонтакте

# coding=utf-8 import requests # для выполнения запросов import re # для парсинга по регулярным выражениям import sys # для обработки аргументов командной строки import os # для создания папок с фотографиями import urllib # для скачивания картинок import json # для обработки json # argv = remixsid_cookie # argv = dialog_id # argv = person_name
Аргументы у нас будут передаваться через терминал (remixsid, dialog_id и название папки):

Remixsid_cookie = sys.argv # Словарь запроса RequestData = < «act»: «show», «al»: 1, «loc»:»im», «w»: «history» + sys.argv + «_photo», «offset» : 0, «part» : 1 >request_href = «http://vk.com/wkview.php» # Установим первоначальные offset и count. Count изменится при первом запросе bound =
Создадим отдельную папку для фотографий:

Try: os.mkdir(«drop_» + sys.argv) # Пытаемся создать папку except OSError: print «Проблемы с созданием папки «drop_» + sys.argv + «»» if(os.path.exists(«drop_» + sys.argv)): os.chdir(«drop_» + sys.argv) # Переходим в эту папку else: print «Не удалось создать папкуn» exit()
Отлично, начинаем выполнение запросов:

Test = open(«links», «w») while(bound[«offset»] is a string parameter «sel» in address line which you see when open a dialog «»» exit() else: if(len(sys.argv) (например, первых 10), но мне просто хотелось описать основные моменты. В итоге те самые 1000 фотографий, которые мне были нужны, были скачаны. Заняло это где-то 2 минуты. Никаких ограничений на запросы, как так понял, vk.com не ставит, хотя могу предположить, что на такой маленький для него трафик он даже не реагирует.

Еще по теме:  Как подписаться Вконтакте в одноклассниках

Весь рабочий код целиком лежит на

Вчера мне понадобилось скачать все фотографии из диалога с одним человеком в vk.com. Фотографий было больше 1000 штук. Понятное дело, что ручками это все делать было бы утомительно и… Стыдно. Не для того программированием занимаюсь, чтобы такую

работу делать не автоматизированно. Поэтому было решено написать скрипт.

В качестве языка был выбран Python. Его удобно использовать для консоли, он довольно быстрый, есть модуль urllib, позволяющий «одним движением» скачивать картинки по ссылке. Но главная причина — это то, что я начал изучать его недавно. Решил дополнительно попрактиковаться.

Сам скрипт получился небольшой, но было бы интересно описать процесс создания. Буду стараться писать побольше комментариев в коде, чтобы те, кто не знает python, тоже смогли понять процесс. А от знатоков очень приветствуются советы и указания. Итак, приступим.

«Вконтакте» не предоставляет API конкретно для скачивания материалов из беседы, поэтому самое долгое время заняло изучение того, как устроена система подгрузки картинок из диалога в vk.com. Все картинки лежат у них, понятное дело, на сервере, и доступ к ним имеет любой, у кого есть ссылка на эту картинку. Таким образом, чтобы скачать все фотографии из диалога, нам надо получить все ссылки на картинки. Тыкаясь туда-сюда, было выяснено, что при нажатии на «Действия -> показать материалы из беседы» отправляется POST запрос на

Запрос содержит параметры:

В этом запросе dialog_id — это значение параметра «sel» в адресной строке, когда мы заходим в диалог.

Выполнив такой запрос, мы получим в ответ что-то вроде вот этого:

16515 wkview.js,wkview.css,page.js,page.css,page_help.css 0 6590 0

Источник: musfight.ru

dokxpi/VKIMexport

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags

Nothing to show

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

  • Local
  • Codespaces

HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

Latest commit message
Commit time

README.md

VKIMexport — это скрипт на Python, для скачивания фотографий из бесед или диалогов интересующего вас собеседника социальной сети vk.com

Требования: Python 3.3.6 [+]

####Текущие проблемы и статус#### Внимание: скрипт временно не работает (проблемы с авторизацией)

В первую очередь нам потребуется установить сам python и дополнительные к ему библиотеки:

  • скачиваем с официального сайта интерпретатор www.**python**.org и устанавливаем его
    ([загрузить] (https://github.com/dokxpi/VKIMexport/blob/master/toolbox/-%20python/python-3.4.2.amdx86-64.rar?raw=true) для windows)
  • скачиваем с сайта www.lfd.uci.edu/~gohlke/pythonlibs установщики библиотек lxml,requests и устанавливаем их ([загрузить] (https://github.com/dokxpi/VKIMexport/blob/master/toolbox/-%20library/lxml нажмите OК) и в появившемся окне консоли, выполним следующие команды
  • cd C:Python34Scripts и жмем клавишу ENTER / — где Python34 версию вашего интерпретатора
  • pip install cssselect и жмем клавишу ENTER /

Теперь мы готовы к запуску VKIMexport, но перед тем как запустить нам потребуется узнать значение переменой DIALOG_ID , для этого

set

  • перейдите по адресу https://vk.com/im
  • выберите интересующий вас диалог и кликнете на нем мышкой
  • скопируйте значения set в адресной строке вашего браузера
  • где «69828681» значение переменной DIALOG_ID
  • [загрузите скрипт VKIMexport] (https://github.com/dokxpi/VKIMexport/blob/master/toolbox/-%20releases/v0.1.3/main.zip?raw=true) на ваш компьютер и распакуйте его содержимое в корень диска C: (убедитесь в доступности скрипта по адресу C:main.py )
  • откройте файл main.py в [текстовом редакторе] (http://notepad-plus-plus.org/) и отредактируйте в нем следующие переменны
  • txt

    Вызвать командную строку (windows: открыть диалог «Выполнить» с помощью сочетания клавиш Win + R и введите cmd –> нажмите OК) и в появившемся окне консоли, выполнить команду

    • C:Python34python.exe C:main.py
    Еще по теме:  Выберите Смайлик и выполни задание с ответами для друзей в Вконтакте

    Остались вопросы?
    Создайте issue в репозиторий или свяжитесь со мной!

    Источник: github.com

    Скачать все вложения из диалога в вк. Как сохранить диалог вконтакте

    Для начала понадобится OpenOffice Calc, Excel или любые электронные таблицы. Открываем в браузере ваш диалог Вконтакте. Пролистываем его весь до начала. Нажимаем комбинацию клавиш Ctrl+A (выделить всё), а потом Сtrl+C (скопировать всё). Этот момент как раз виден на скриншоте выше.

    Не пугайтесь, что копируем всю страницу — мусор уберём легко.

    Внимание! Если диалог достаточно большой, то вставлять лучше сначала в Блокнот. Потом копируем содержимое Блокнота в электронную таблицу. Если копировать большой диалог сразу в Excel, то тот зависнет очень надолго, если не на совсем.

    Запускаем OpenOffice Calc или Excel. Вставляем скопированный диалог с мусором в электронную таблицу. Ниже виден этот процесс.

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

    Вот что получилось у меня.

    Уже неплохо. Ничего лишнего. Теперь можно сохранить в любом формате.

    Почему делать лучше в таблице, а не в Word или OpenOffice Writer? Потому, что форматирование в таблице не ползёт. Если вы сохраните (через копирование и вставку в блокнот) потом этот диалог как простой текстовый файл, то форматирование останется в виде удобного для чтения диалога.

    Вот, что получилось на выходе.

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

    Удачи, а я пошёл писать пост про самый экономный шоппинг.

    UPD 23.02.18 На сегодняшний день такой способ работает плохо. То ли разметка изменилась, то ли браузер не так отображает. Для того, чтобы быстро скачать диалог, можно воспользоваться расширением для браузера Хром — .

    Сохранение переписки ВКонтакте с расширением VkOpt

    Настройки будут доступны по адресу — . Удаляется расширение там же.

    Открываем вкладку Вконтакте и заходим в аккаунт. Сразу увидим окно настройки скрипта.

    В дальнейшем настройки можно изменить в выпадающем меню настроек.

    Вам будет предложено два варианта формата выходного файла:

    • Как web-страницу
    • Как текстовый документ

    Web-страница будет выглядеть так как выглядит диалог Вконтакте, с аватарками. В общем, выбирайте сами.

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

    UPD 19.11.2018: Из сети ВКонтакте можно легко сохранить диалоги и не только штатным способом — .

    (12 оценок, среднее: 4,58 из 5)
    Антон Третьяк Антон Третьяк [email protected] Administrator сайт — обзоры, инструкции, лайфхаки

    Вчера мне понадобилось скачать все фотографии из диалога с одним человеком в vk.com. Фотографий было больше 1000 штук. Понятное дело, что ручками это все делать было бы утомительно и… Стыдно. Не для того программированием занимаюсь, чтобы такую грязную работу делать не автоматизированно. Поэтому было решено написать скрипт.

    В качестве языка был выбран Python. Его удобно использовать для консоли, он довольно быстрый, есть модуль urllib, позволяющий «одним движением» скачивать картинки по ссылке. Но главная причина — это то, что я начал изучать его недавно. Решил дополнительно попрактиковаться.

    Сам скрипт получился небольшой, но было бы интересно описать процесс создания. Буду стараться писать побольше комментариев в коде, чтобы те, кто не знает python, тоже смогли понять процесс. А от знатоков очень приветствуются советы и указания. Итак, приступим.

    «Вконтакте» не предоставляет API конкретно для скачивания материалов из беседы, поэтому самое долгое время заняло изучение того, как устроена система подгрузки картинок из диалога в vk.com. Все картинки лежат у них, понятное дело, на сервере, и доступ к ним имеет любой, у кого есть ссылка на эту картинку. Таким образом, чтобы скачать все фотографии из диалога, нам надо получить все ссылки на картинки. Тыкаясь туда-сюда, было выяснено, что при нажатии на «Действия -> показать материалы из беседы» отправляется POST запрос на vk.com/wkview.php . Запрос содержит параметры:

    • act:show
    • loc:im
    • w:history _photo
    Еще по теме:  Как удалить сообщение в мессенджере Вконтакте

    16515 wkview.js,wkview.css,page.js,page.css,page_help.css 0 6590 0

    Фотографии в переписке с ЮЗЕР_НЭЙМ
    . (и еще много ссылок с картинками)
    Список пуст.
    Показать еще

    Из всего этого нам интересны только ссылки, которые находятся внутри , а так же json на конце. Я был не до конца честен, говоря, что POST запрос принимает 4 параметра. Точнее, он принимает, но если его выполнить нам выдадутся только первые несколько фотографий. Так как vk.com имеет подгрузку контента по мере прокручивания страницы, то существует параметр offset, который отвечает за то, какую часть из всего множества фотографий нам подгрузить. В итоге параметры запроса выглядят вот так:

    • act:show
    • loc:im
    • w:history _photo
    • offset: offset
    • part: 1

    Кстати, а что насчет выполнения запросов? Как нам получить доступ к своей странице? Было выяснено, что доступ к странице может получить тот, у кого есть cookie под названием remixsid. Таким образом нам надо подставить эту куку в функцию, которая выполняет запрос и все получится. Безопасно? Не совсем, швыряться куками — это не есть хорошо, но я не нашел другого варианта.

    Если кто-то знает, напишите пожалуйста.

    Общий алгоритм вроде понятен: сделать запрос, вытащить ссылки, записать их в файл, проверить-
    новый offset>count?-, если нет, то присвоить offset новое значение и выполнить запрос с ним, если да, то выйти из цикла. Затем пройтись по всем ссылкам в файле и скачать картинки лежащие по их адресу. Начинаем писать код.

    # coding=utf-8 import requests # для выполнения запросов import re # для парсинга по регулярным выражениям import sys # для обработки аргументов командной строки import os # для создания папок с фотографиями import urllib # для скачивания картинок import json # для обработки json # argv = remixsid_cookie # argv = dialog_id # argv = person_name
    Аргументы у нас будут передаваться через терминал (remixsid, dialog_id и название папки):

    Remixsid_cookie = sys.argv # Словарь запроса RequestData = < «act»: «show», «al»: 1, «loc»:»im», «w»: «history» + sys.argv + «_photo», «offset» : 0, «part» : 1 >request_href = «http://vk.com/wkview.php» # Установим первоначальные offset и count. Count изменится при первом запросе bound =
    Создадим отдельную папку для фотографий:

    Try: os.mkdir(«drop_» + sys.argv) # Пытаемся создать папку except OSError: print «Проблемы с созданием папки «drop_» + sys.argv + «»» if(os.path.exists(«drop_» + sys.argv)): os.chdir(«drop_» + sys.argv) # Переходим в эту папку else: print «Не удалось создать папкуn» exit()
    Отлично, начинаем выполнение запросов:

    Test = open(«links», «w») while(bound[«offset»] is a string parameter «sel» in address line which you see when open a dialog «»» exit() else: if(len(sys.argv) (например, первых 10), но мне просто хотелось описать основные моменты. В итоге те самые 1000 фотографий, которые мне были нужны, были скачаны. Заняло это где-то 2 минуты. Никаких ограничений на запросы, как так понял, vk.com не ставит, хотя могу предположить, что на такой маленький для него трафик он даже не реагирует.

    Весь рабочий код целиком лежит на

    Вчера мне понадобилось скачать все фотографии из диалога с одним человеком в vk.com. Фотографий было больше 1000 штук. Понятное дело, что ручками это все делать было бы утомительно и… Стыдно. Не для того программированием занимаюсь, чтобы такую грязную работу делать не автоматизированно. Поэтому было решено написать скрипт.

    В качестве языка был выбран Python. Его удобно использовать для консоли, он довольно быстрый, есть модуль urllib, позволяющий «одним движением» скачивать картинки по ссылке. Но главная причина — это то, что я начал изучать его недавно. Решил дополнительно попрактиковаться.

    Сам скрипт получился небольшой, но было бы интересно описать процесс создания. Буду стараться писать побольше комментариев в коде, чтобы те, кто не знает python, тоже смогли понять процесс. А от знатоков очень приветствуются советы и указания. Итак, приступим.

    «Вконтакте» не предоставляет API конкретно для скачивания материалов из беседы, поэтому самое долгое время заняло изучение того, как устроена система подгрузки картинок из диалога в vk.com. Все картинки лежат у них, понятное дело, на сервере, и доступ к ним имеет любой, у кого есть ссылка на эту картинку. Таким образом, чтобы скачать все фотографии из диалога, нам надо получить все ссылки на картинки. Тыкаясь туда-сюда, было выяснено, что при нажатии на «Действия -> показать материалы из беседы» отправляется POST запрос на vk.com/wkview.php . Запрос содержит параметры:

    • act:show
    • loc:im
    • w:history _photo

    16515 wkview.js,wkview.css,page.js,page.css,page_help.css 0 6590 0

    Источник: nexxdigital.ru

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...