API Вконтакте - пример работы c userapi (библиотека python для работы с Вконтакте)

Автор: Igor Kirsanov

Для работы с api вконтакте на python удобно использовать библиотеку под названием userapi.
Код библиотеки лежит на svn, так что для его получения под виндовс придется немного загрузить постороннего софта, а именно программу для работы с распределенными системами управления версиями Mercurial.
Загружаем программу со страницы загрузки

Загрузив и установив программу, переходим на страницу библиотеки python для работы с API Вконтакте
в коммандную строку вводим
hg clone https://code.google.com/p/userapi/

или указываем полный путь к hg.exe, если пишет что не является программой или исполнимым файлом (находится в папке с установленным Mercurial)

После того как библиотека скачается переходим в папку userapi и копируем содержимое в папку питона для питона 2.7 путь следующий /Python27/Lib/site-packages/

Библиотека userapi готова к работе, теперь воспользуемся примером

Александра Гудулина для загрузки аватарок своих друзей


#!/usr/bin/python
# -*- coding: utf-8 -*- 
 
from userapi import *
import urllib
import os
 
USER = "mail"
PASS = "pass"
DID  = "id"
 
def getFriendsAvatars(id = None):
    for friend in handler.v_friends(None, id, 0, 60):
        try: os.mkdir("avatars")
        except OSError: pass # directory exists
        if friend.avatar != '0':
            downloadPicture(str(friend.avatar), "avatars", str(friend.id)+"."+str(friend.avatar).split(".")[-1])
 
def downloadPicture(url, pathToDir, title):
    wf = urllib.urlopen(url)
    lf = open(pathToDir + "/" + title, "w")
    lf.write(wf.read())
    wf.close()
    lf.close()            
 
try:
    session = Session()
    session.login(USER, PASS)
    handler = UserAPI(session)
    getFriendsAvatars()
    session.logout()
 
except UserAPIError as error:
    print "Get code: " + str(error.code) + " " + error.text
 
except JSONProblemError as error:
    print "JSON data is a bullshit, storing to disk"
    f = file('bs', 'w')
    f.write(error.json_data)
    f.write("\n\n\n" + str(error.supplement))
    f.close()

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

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

Нашел еще одну библиотеку для работы с Вконтакте, от разработчика уже известного дополнения pymorphy
Ссылка на загрузку
hg clone https://bitbucket.org/kmike/vkontakte