API Вконтакте - пример работы c userapi (библиотека python для работы с Вконтакте)
Для работы с 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