Как авторизоваться в вк? Нужно для парсинга через bs4

Не могу авторизоваться в вк через vk_api по логину и паролю, выдаёт ошибку:

vk_api.exceptions.BadPassword: Bad password.

Попытался разобраться сам, понял только то что вк не поддерживает такой тип авторизации из за "опасности для пользователя".

Мне нужно спарсить чаты группы любым способом (кроме selenium-а, потому что получилось слишком медленно, когда подрубаешь прокси). Если есть какой-нибудь метод в vk_api для получения чатов групп или ещё что-нибудь, пожалуйста, подскажите.

Пытаюсь авторизоваться так:

import vk_api

login = '777777777777'
password='password'
app_id = 6287487

a = vk_api.VkApi(login=login, password=password, app_id=app_id)
a.auth()

Причём у меня даже получилось авторизироваться так несколько раз и даже сохранить нужную мне страницу, и даже найти нужные мне данные. Но потом всё перестало работать и стало выдавать вот это

vk_api.exceptions.BadPassword: Bad password.

Прошерстил уже весь интернет, но не нашёл никакой полезной и актуальной на сегодняшний день информации.

TraceBack:
File "c:\Users\t8963\OneDrive\Рабочий стол\SAVE\TEST\parsing.py", line 39, in __init__
    a.auth()
  File "C:\Users\t8963\miniconda3\Lib\site-packages\vk_api\vk_api.py", line 188, in auth
    self._auth_cookies(reauth=reauth)
  File "C:\Users\t8963\miniconda3\Lib\site-packages\vk_api\vk_api.py", line 203, in _auth_cookies
    self._vk_login()
  File "C:\Users\t8963\miniconda3\Lib\site-packages\vk_api\vk_api.py", line 324, in _vk_login
    raise BadPassword('Bad password')
vk_api.exceptions.BadPassword: Bad password

Ответы (2 шт):

Автор решения: Artem

вк не поддерживает такой тип авторизации из за "опасности для пользователя"

Попробуйте использовать модуль requests для обращения к API Вконтакте напрямую.

Ниже небольшой пример, решающий вашу проблему:

import requests

API_URL = "https://api.vk.com/method/board.getTopics"  # Эндпоинт для получения обсуждений группы
api_version = "5.199"  # Версия API
token = ""  # Токен


def get_topics(group_id: str) -> list:
    # Запрос с параметрами
    request = requests.get(
        API_URL,
        params={"access_token": token, "group_id": group_id, "v": api_version},
    )

    # Количество обсуждений группы
    count = request.json()["response"]["count"]

    # Если обсуждения есть, вернуть их
    if count > 0:
        return request.json()["response"]["items"]
    else:
        return []


if __name__ == "__main__":
    print(get_topics("127108923"))

Получить токен можно, например, создав ваше приложение ВКонтакте, которое запрашивает необходимые права доступа.

Или через официально одобренные приложения, для этого можно воспользоваться этим сайтом.

→ Ссылка
Автор решения: Lama

Короче разобрался сам, нужно было всего лишь класс, в качестве родителя которого указать класс VkApi, провести авторизацию и уже выполнять действия.

→ Ссылка