Python — получить телефоны друзей в VK

Автор:human

Python — получить телефоны друзей в VK

Многие, изучающие Python интересуются его использованием в связке с API Вконтакте. В VK имеется телефонная книга, она в более-менее нормальном формате отображает мобильные номера ваших друзей. А учитывая то, что далеко не каждый человек охотно оставляет там свой валидный (полный) номер телефона, будет весьма интересно и полезно написать скрипт, который будет отбирать исключительно валидные мобильные номера и выводить их в отдельную таблицу. Наша телефонная книга будет создавать CSV-файл, который впоследствии можно будет открывать, к примеру, в Excel.

Чтобы воспользоваться API Вконтакте на Python можно воспользоваться неплохой библиотекой vk. Оригинальное название, не так ли? Итак, нужно импортировать нужные нам модули:

Дале создаем класс User с методами, которые нам необходимы:

Тут возникла проблема, и гугл как-то не выдавал нужное решение, как взять id текущего пользователя. Но, выход был найдет – нужно передать как аргумент пустую строку.

Затем следует написать функцию валидатор, приводящая к общему виду номера телефонов. В нашем примере мы будем выбирать лишь номера, начинающиеся с «0». Вы сможете легко скорректировать скрипт под нужный вам формат.

Затем пройдем по друзьям, отобрав тех, которые оставили свои контактные данные, и если оставили, то мы их валидируем и записываем в массив. У сервера ВК есть одна особенность – он не любит большое количество запросов, соответственно нужно сделать так, чтобы наш скрипт «спал» определенное время между ними. Были перепробованы различные значение, и определены оптимальные.

Теперь сохраним полученный результат.

Далее нужно добавить функцию, подсчитывающую затраченное время.

И в конце нужно реализовать вызов созданных функций.

В результате мы получаем csv-файл, который в виде удобной таблицы можно открывать в Excel.

Об авторе

human administrator

    Пока лишь 1 комментарий

    prawn-cakeДата:11:09 пп - Май 27, 2016

    Привет.
    Столкнулся с множеством проблем с библиотекой vk для python и к сожалению автор видимо слишком занят чтобы поддерживать ее, вообщем сделал fork проекта, у уже внесено множество улучшений и исправлений, большая часть проекта покрыта тестами, добавлены полезные продакшн фичи, например, авто-разрешение конфликтов при входе с неизвестного места (когда деплоимся на aws или где-то не на домашнем лэптопе)
    Надеюсь кто-то так же найдет это полезным. Извиняюсь за внимание.
    Ссылка на проект: https://github.com/prawn-cake/vk-requests

    Оставить ответ

    Войти с помощью: 

     

    Яндекс.Метрика