Меня давно беспокоила мысль, что в альбомах Vkontakte есть несколько фото, локальных копий которых у меня нет. Перебирать все альбомы и фото занятие, конечно, полезное, но очень скучное. По этому я решил как то автоматизировать этот процесс.
Ниже приведены несколько строк кода, что дают возможность производить експорт фотографий из Vkontakte на локальный диск. Иными словами – Вы можете скачать все альбомы Вконтакте себе на ПК.
Прежде всего установите замечательную библиотеку для работы с Vkontakte API, что написал Mikhail Korobov Именно её я использовал, как самый просто и интуитивно-понятный способ общаться с социальной сетью в Python.
Для работы скрипта Вам потребуется сперва создать приложение VKontakte. Делается это в 1 клик, по этому описывать процесс не буду.
На выходе Вы должны получить:
- ID приложения (APP_ID в настройках скрипта)
- Защищенный ключ (APP_KEY в настройках скрипта)
Теперь создайте скрипт со следующим кодом, указывая значения для двух переменных выше и свой VK ID в переменной UID.
Не забудьте указать путь к каталогу, куда будут загружаться альбомы (PHOTOS_DIR)
#!/bin/env python
# -*- coding: utf-8 -*-
import os
import urllib2
import vkontakte
from time import sleep
# Start config block
UID = YOUR_VK_ID
APP_ID = 'YOUR_ID'
APP_KEY = 'YOUR_KEY'
PHOTOS_DIR = 'YOUR_PATH'
# End config block
vk = vkontakte.API(APP_ID, APP_KEY, timeout=5)
for album in vk.photos.getAlbums(uid=UID):
sleep(0.3)
album_path = PHOTOS_DIR + "/" + album['title'].replace(' ', '_').replace(',', '')
try:
os.mkdir(album_path)
except:
pass
for photo in vk.photos.get(uid=UID, aid=album['aid']):
if photo.has_key('src_xxbig'):
image_src = photo['src_xxbig']
elif photo.has_key('srx_xbig'):
image_src = photo['srx_xbig']
else:
image_src = photo['src_big']
photo_path = album_path + "/" + image_src.split('/')[-1]
photo = urllib2.urlopen(image_src).read()
photo_on_disk = open(photo_path, 'w+')
photo_on_disk.write(photo)
photo_on_disk.close()
sleep(0.3)
print "Photo '%s' downloaded" % photo_path
Теперь можете запускать скрипт и следить за загрузкой!
По умолчанию скрипт загружает фотографии наилучшего качества, если это возможно. Фото разбиваются по альбомам (на каждый альбом создаётся свой каталог).
Приятной работы!
Источник: