Перейти к содержимому

Как авторизоваться в вк через python

  • автор:

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 Вконтакте

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 на реальных примерах

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

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

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

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

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

Лучшие хакеры в мире: ТОП-5 мастеров всех времен

Лучшие хакеры в мире: ТОП-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() 

Скриншот выполнения программы

vk api python

Данная библиотека с помощью нескольких строчек кода позволяет нам авторизоваться на сайте и спарсить наши аудиозаписи.

Если мы с нуля писали бы авторизацию , то пришлось бы написать примерно следующий код. Тут не рассматривается обработка ошибок, наличие двухфакторной авторизации и другие моменты.

 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 программа

Запускаем «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

Помощь проекту

Если есть возможность — поддержать нас: будем очень признательны. Денежные средства пойдут на дальнейшее развитие проекта!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *