Online video hd

Смотреть азиатское видео

Официальный сайт mixzona 24/7/365

Смотреть видео бесплатно

05.12.10 12:24

RANUXБиблиотека доступа к пользовательским API сайта ВКонтакте.

Не так давно, пару месяцев назад, появилась у меня идея сдирать получать информацию о друзьях с сайта ВКонтакте. Немного разобравшись с api начал искать подходящую либу на питоне. Как оказалось, к сожалению всё что я нашёл, это либы которые реализовывали серверный доступ и я решил написать на коленке свою либу PyVKApi:) Буду рад комментариям) и так поехали.

Скачиваем PyVKApi.
Заходим в наш любимый интерпретатор python и пишем следующие строки:
1
2
3
4
5
6

from pyvkapi import  PyVkApi
vkapi = PyVkApi(email='[email protected]', password='dfdfdf', uid='1587648', api_id='2006539')
from pprint import pprint  
pprint(vkapi.call(['method=friends.get','fields=photo_big']))
 

Естественно email, password, uid и api_id вы указываете свои.
Про api читаем Описание API функций ВКонтаке и не забудьте поставить: pip install simplejson
На базе PyVKApi я написал программу VK Audio Grabber в качестве примера использования. Скачать можете там же, а инструкцию по установке почитать у меня на сайте httpbots.com
Желаю всем приятного пирсинга парсинга и граббинга :)))



leonike 05.12.10 12:36 # +1
тоже писал на питоне для выдергивания ссылок на музыку вконтакте. потом переписал на qt/c++, работать стало гораздо быстрее :)
derfenix 05.12.10 12:37 # +2
переписал на qt/c++, работать стало гораздо быстрее

Странно,почему же?.. %)
digiwhite 05.12.10 14:19 # +0
:)))
Midler 05.12.10 21:33 # +1
Итс э мэджик!
inst 07.12.10 17:15 # +0
а писали для себя или в сети можно скачать?
leonike 05.12.10 13:23 # +0
Посмотрел VK Audio Grabber. Недостаток - необходимость логиниться и добавлять приложение. Метод audio.get может работать без логина, что не требует лишних телодвижений для начала работы с программой, для этого нужно передавать параметр test_mode равный 1. Не вникал в код, загрузка записи происходит в отдельном потоке?
RANUX 05.12.10 13:44 # +0
А где по подробнее можно про test_mode почитать?
leonike 05.12.10 13:50 # +4
видимо, убрали из документации, мб скоро и работать не будет, но пока все ок, моя плеер для вконтакта нормально работает. вот код получения списка ссылок на музыку:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
void MainWindow::audioSearch()
{
    QCursor cursor;
    cursor.setShape(Qt::WaitCursor);
    QString text = ui->lineEdit->text();
    if (text.isEmpty())
            return;
    int count = m_count;
    int mid = 00000000; //тут ваш mid
    QString sig_src = QString::number(mid);
    QMap<QString, QString> params;
    params["method"] = "audio.search";
    params["v"] = "3.0";
    params["api_id"] = "1961846";
    params["q"] = text;
    params["format"] = "JSON";
    params["count"] = QString::number(count);
    params["test_mode"] = "1";
    QStringList keys = params.keys();
    keys.sort();
    foreach(QString key, keys) {
        sig_src = QString("%1%2=%3").arg(sig_src).arg(key).arg(params[key]);
    }
    QByteArray n_sig_src;
    n_sig_src.append(sig_src);
    QByteArray sig = QCryptographicHash::hash(n_sig_src, QCryptographicHash::Md5).toHex();
    params["sig"] = sig;
    keys = params.keys();
    QString url = QString("http://api.vkontakte.ru/api.php?%1=%2").arg(keys.at(0)).arg(params[keys.at(0)]);
    for(int i = 1; i < keys.length(); i++) {
        url = QString("%1&%2=%3").arg(url).arg(keys.at(i)).arg(params[keys.at(i)]);
    }
    QNetworkRequest request(url);
    m_reply = m_manager->get(request);
    cursor.setShape(Qt::ArrowCursor);
}
leonike 05.12.10 13:55 # +0
Если не знаете qt, то QMap - словарь, в котором содержатся параметры, которые нужно передать. Все точно также, только не нужен sid, и передаем test_mode. Так как sid не нужен, то и логиниться не надо.
leonike 05.12.10 14:03 # +2
вот так набыдлокодил :)
digiwhite 05.12.10 14:20 # +0
Прикольно, плюсанул. Только вот то как код оформлен люто не понравилось.
antigluk 05.12.10 15:30 # +-1
K&R как никак)
wiz 05.12.10 15:54 # +0
А своих глаз нету чтоль? Видно же, что нечитабельная портянка...
antigluk 05.12.10 22:08 # +2
Как по мне то всё вполне читабельно..
wiz 05.12.10 15:53 # +0
После питона с его pep8 любой сишный код "оформлен" как го^W^W не по нраву (=
RANUX 05.12.10 13:37 # +0
С недостатками согласен, в следующем релизе можно попробовать учесть.
Я бы с радостью вбил бы данные desktop приложения, но надо чтобы пользователь мог его добавлять к себе на страницу, а это возможно только с разрешения администрации ВКонтакте.
Не вникал в код, загрузка записи происходит в отдельном потоке?

Да, загрузка идёт в отдельном потоке, иначе интерфейс бы не реагировал ))
wiz 05.12.10 15:58 # +0
А почему call, а не __call__? Почему params, а не *params?

Или даже **params:

vkapi.call(method="friends.get", fields='photo_big')
wiz 05.12.10 15:59 # +0
ой... vkapi(whatever=...)
RANUX 07.12.10 22:14 # +0
Всем спасибо за комментарии:) Буду шлифовать и улучшать.

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 164)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 3405 из 238 городов)
            Топ пользователей Топ блогов

            Новенькие: Robotex, naaby, sim732, metalworker, gi
            welinux.ru

            Смотреть онлайн бесплатно

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн