Python. VK. Авторизация
Пытаюсь авторизоваться ВК как пользователь (не как сообщество). Пробовал с помощью библиотеки vk_api:
vk_session = vk_api.VkApi(login, password) vk_session.auth()
выдаёт ошибку: vk_api.exceptions.AuthError: Unknown error. Please send bugreport to [email protected] Хотя раньше работало. Вроде как этот метод авторизации устарел. Дальше пробовал авторизоваться с помощью requests — не работало и спомощью библиотеки VK — тоже не получилось. Может кто знает актуальный способ авторизации ВК?
Изменение статуса при помощи Python и API Вконтакте

Python мощный и полнофункциональный язык. В ходе статьи мы познакомимся с API Вконтакте и пропишем скрипт, который позволит выполнять обновление статуса Вк в режиме 24/7.
Чтобы быстро создать автостатус с возможностью круглосуточной работы, от пользователя потребуется совершить ряд несложных манипуляций.
#1 — Установка ПО Python и vk_api
Сначала необходимо скачать Python не ниже третьей версии. Он нужен в качестве языка программирования. Чтобы установить ЯП на ПК, потребуется загрузить установочный файл, пройдя по этой ссылке .
В процессе инсталляции поставить отметку напротив пункта «Add Python to PATH»:

При установленном ЯП все равно потребуются библиотеки vk_api, чтобы обеспечить работу скрипта в социальной сети. Добавить из проект можно через командную строку или терминал. Запускаем командную строку через команду cmd (пропишите её в меню пуск), далее в командной строке пропишите:
pip install vk_api
#2 – Создание Git и Heroku
Нужно зарегистрироваться на ресурсе Heroku по этой ссылке , чтобы создать хостинг для скрипта. Когда аккаунт будет активным, необходимо инсталлировать на ПК Heroku CLI .
Также понадобиться Git, который можно скачать отсюда . Он потребуется, чтобы установить скрипт на Heroku.
#3 – Создание скрипта
Теперь потребуется вставить функциональные модули:
import vk_api import datetime # работа с датой и временем import time
Прописать повторяющийся цикл:
while True:
Дальше необходима авторизация в соц. сети:
vk = vk_api.VkApi(token="токен для авторизации")
Пройдя по этой ссылке откроется инструкция для получения токена:
Теперь потребуется настроить дату и московское время:
delta = datetime.timedelta(hours=3, minutes=0) # разница от UTC. Можете вписать любое значение вместо 3 t = (datetime.datetime.now(datetime.timezone.utc) + delta) # Присваиваем дату и время переменной «t» nowtime = t.strftime("%H:%M") # текущее время nowdate = t.strftime("%d.%m.%Y") # текущая дата
И, разумеется, количество друзей онлайн:
on = vk.method("friends.getOnline") # получаем список id друзей онлайн counted = len(on) # считаем кол-во элементов в списке
vk.method("status.set", )
Что находится в поле «Статус», обозначено в значении text. Пример предоставлен выше, но точно копировать данные не обязательно.
Чтобы обойти капчу в ВК:
time.sleep(30) # погружаем скрипт в «сон» на 30 секунд
Исходный код обязан выглядеть, как в нижеприведенном примере:

Написание скрипта завершено!
#4 – Интегрирование скрипта в Heroku
Чтобы пройти авторизацию на Heroku, необходимо открыть терминал или командную строку:
heroku login
Найти директорию скрипта (использование отдельной папки в этом случае отличное решение):
cd %директория%
Теперь в Heroku потребуется создать приложение ( app_name необходимо заменить другим обозначением):
heroku create %app_name% --buildpack http://github.com/heroku/heroku-buildpack-python.git
Три указанных ниже файла необходимы для корректной работы скрипта в Heroku. Создать:
- runtime.txt
- Procfile (без расширения)
- requirements.txt
# runtime.txt: python-3.6.6 # Procfile: worker: python3 %name%.py # Название скрипта вписать вместо name: # requirements.txt: vk_api
Теперь он готов к инсталляции:
git init heroku git:remote -a %app_name% git add . git commit -am "first deploy"
Дальше потребуется заменить значение app_name на название приложения, а first_deploy переименовать на произвольные символы.
git push heroku master
Теперь загрузка скрипта гарантирована. Чтобы продолжить работу, необходимо дождаться окончания процесса.
Посещать сайт Heroku, чтобы войти в приложение нужно после завершения процесса. Здесь необходимо открыть вкладку Resources.

Задействовать поочередно «карандаш» и «ползунок» Confirm.
Визуально найти вкладку More > View logs (она находится в верхнем углу справа), активировать и выждать паузу приблизительно 10 секунд.
Если ошибки отсутствуют, значит, работа проделана отлично.
Больше интересных новостей

Изучение Git на реальных примерах

Продвижение в соц сетях: SMM, SMO и SMM-специалисты

ТОП-10 фильмов и сериалов последних лет про современные технологии

Лучшие хакеры в мире: ТОП-5 мастеров всех времен
vk api python. Получаем аудиозаписи со своей страницы
В этой статье воспользуемся замечательной библиотекой vk_api, которая позволяет взаимодействовать с сайтом Вконтакте средствами python . Чтобы получить список аудиозаписей со своей страницы , нам не нужно создавать приложение вконтакте , достаточно иметь свой логин и пароль
pip install vk_api
Еще необходимо будет установить библиотеку beautifulsoup4. Эта библиотека используется в модуле VkAudio библиотеки vk_api для парсинга
pip install beautifulsoup4
Напишем код , который авторизует нас в вконтакте , а потом получает все наши треки
import vk_api from vk_api.audio import VkAudio def main(): vk_session = vk_api.VkApi('Ваш логин', 'Ваш пароль') try: vk_session.auth() except vk_api.AuthError as error_msg: # Если происходит исключение во время аутентификации, то выводим ошибку и выходи print(error_msg) return # Модуль для получения аудиозаписей без использования официального API. vkaudio = VkAudio(vk_session) for track in vkaudio.get_iter(): print(f"Исполнитель : ") print(f"Название трека : ") print(f"Ссылка на трек(url) : ") print('--------------------------------------------') if __name__ == '__main__': main()
Скриншот выполнения программы

Данная библиотека с помощью нескольких строчек кода позволяет нам авторизоваться на сайте и спарсить наши аудиозаписи.
Если мы с нуля писали бы авторизацию , то пришлось бы написать примерно следующий код. Тут не рассматривается обработка ошибок, наличие двухфакторной авторизации и другие моменты.
import requests import re RE_LOGIN_HASH = re.compile(r'name="lg_h" value="([a-z0-9]+)"') login, password = 'Ваш логин', 'Ваш пароль' # Создаем сессию с исползованием библиотеки requests client_http = requests.Session() # Добавляем user_agents , эмулируя поведение браузера client_http.headers.update(< 'User-agent': 'Mozilla/5.0 (Windows NT 6.1; rv:52.0) ' 'Gecko/20100101 Firefox/52.0' >) # Выполняем запрос к сайту , чтобы получить cookies response = client_http.get('https://vk.com/') values = < 'act': 'login', 'role': 'al_frame', '_origin': 'https://vk.com', 'utf8': '1', 'email': login, 'pass': password, 'lg_h': search_re(RE_LOGIN_HASH, response.text) ># Отправляем post запрос с нашим логином и паролем. response = client_http.post('https://login.vk.com/', values) #Смотрим ответ print(response.text) #Далее мы должны написать много кода , на случай если используется двухфакторная авторизация # на случай неудачного ввода данных и все такое. Все это за нас написали разработчики данной библиотеки
Это упрощенный код для авторизации, чтобы показать как происходит авторизация с помощью библиотеки requests. А с помощью библиотеки vk_api авторизацию можно сделать всего лишь тремя строчками
import vk_api vk_session = vk_api.VkApi('Ваш логин', 'Ваш пароль') vk_session.auth()
И при том эти три строчки за кулисами делают очень много вещей , такие как обработка ошибок , сохранение кукис , различные варианты авторизации(по токену или по логинуи паролю).
А с помощью еще трек строчек кода , мы получаем все наши аудиозаписи
vkaudio = VkAudio(vk_session) for track in vkaudio.get_iter(): print(track)
Загляните в исходники данных методой и классов в библиотеке vk_apiи вы увидите какие запросы к api вконтакте выполняются и как парсятся аудиозаписи. В частности в методе __init__ класса VkAudio выполняется запрос к api users.get для получения Id авторизованного пользователя. А в методе get_iter() в цикле выполняются post запросы для получения аудиозаписей
В данной статье был рассмотрен конкретный пример использования библиотеки vk_api , которая предоставляет кучу возвоможностей и с замечательными примерами , которые можно посмотреть в репозитории.В следующих статьях мы рассмотрим еще больше примеров
Как получить Access Token Вконтакте за 5 Секунд!
Для взаимодействия с соц сетью Вконтакте по API нужно иметь «Access Token». Access Token можно получить «в ручную» прочитав официальную справку где расскажут как это сделать. Процесс не особо-то и сложный, скорее нудный и может вызвать вопросы у человека, который получает Access Token в первые.
Инструкция в сети, как получить Access Token Вконтакте полно, где по шагам расскажут как его получить, но это займет время. Есть способ куда круче и быстрее!
Получаем Access Token Вконтакте за 5 Сек.
Сразу скажу, нужно установить Python 3! Для python есть замечательный модуль «vk_api». Он нужен, как не странно, что бы юзать ВК API. Но сегодня мы будем использовать этот модуль не для того, что бы общаться с соц сетью по API а для того что бы просто получить Access Token.
Для этого был записан такой скрипт.
import vk_api import os import json login = '' passw = '' VK = vk_api.VkApi(login, passw) VK.auth() VK = VK.get_api() access_token = 0 try: User = VK.users.get() except: print("Error") else: print(f"\nHello ") with open('vk_config.v2.json', 'r') as data_file: data = json.load(data_file) for xxx in data[login]['token'].keys(): for yyy in data[login]['token'][xxx].keys(): access_token = data[login]['token'][xxx][yyy]['access_token'] print('=' * 85) print(f"Твой ID ") print('=' * 85) print(f"Access_Token: ") print('=' * 85) os.remove('vk_config.v2.json') input('Exit [Enter]')
Модуль «VkApi» можно использовать по разному. А именно способ авторизации, либо по логину и паролю либо по токену.
Да к вот, Если использовать способ авторизации по логину и паролю, то модуль «VkApi» сам получит «Access Token» и сохранит его в файл «vk_config.v2.json» далее просто нужно найти сам Token в этом файле, что и делает выше приведённый скрипт.
Далее Token будет выведен в консоль, а файл «vk_config.v2.json» удалён, либо он уже и не нужен. Теперь можно использовать полученный Access Token где вам нужно.
Важно.
Да! Нужно указать в скрипте свой логин и пароль. Если вас это как-то волнует, то используйте офф справку ВК и все.
Что бы все работало, по мимо Python 3 нужно установить менеджер пакетов PIP и сам модуль vk_api через менеджер pip. Как это сделать, очень просто, в google инфы полно, но если что, пишите мне в телегу.
Ссылки
Если лень ставить Python…
И вообще Вам нужно просто получить Access Token и не замарачиваться… На этот случай я скомпили в EXE выше приведённый код.

Запускаем «access_token.exe» вводим логин, жмем Enter после вводим пароль, опять Enter и получаем Access Token Вконтакте. Быстро и просто!
Время чтение: 2 минуты 2020-07-23
- Instabot — модуль для Python, который реализует обертку над API Instagram
- Python-Cptchnet — Модуль для работы с API сервиса Cptch.net
- pyTelegramBotAPI Библиотека для создание Ботов Telegram
- ip2geotools модуль для определения местоположение по IP
- VK-API Библиотека для создания скриптов для социальной сети Вконтакте
- ТОПовый генератор паролей на Python 3
Помощь проекту
Если есть возможность — поддержать нас: будем очень признательны. Денежные средства пойдут на дальнейшее развитие проекта!