vk_api
vk_api copied to clipboard
Ошибка замены user-agent
Хочу сменить UA у пользователя
vk_session.http.headers.update({ 'User-agent': """Mozilla/5.0 AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1""" }) vk_session.auth()
Получаю такую ошибку
vk_api.exceptions.BadPassword: Bad password
если UA не менять, то авторизация конечно же проходит
Вот список значений словаря vk_session.http.headers.update
{'User-agent': 'Mozilla/5.0 AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '/', 'Connection': 'keep-alive'}
Видимо дело в том, что вк пытается редирекнуть на мобильную версию. Можно попробовать поставить куку remixforce_full=2
руками
Установил куку через
vk_session.http.cookies.set(name='remixforce_full', value=2)
print(vk_session.http.cookies)
<RequestsCookieJar[<Cookie remixforce_full=2 for />]>
Пробую авторизоваться
INFO:vk_api:Auth with login: +7XXXXXXXXX
INFO:vk_api:Checking remixsid...
INFO:vk_api:No remixsid
INFO:vk_api:remixsid from config is not valid: None
INFO:vk_api:Logging in...
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): vk.com:443 DEBUG:urllib3.connectionpool:https://vk.com:443 "GET / HTTP/1.1" 302 20 DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): m.vk.com:443
DEBUG:urllib3.connectionpool:https://m.vk.com:443 "GET / HTTP/1.1" 200 3931
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): login.vk.com:443
DEBUG:urllib3.connectionpool:https://login.vk.com:443 "POST / HTTP/1.1" 302 20
DEBUG:urllib3.connectionpool:https://vk.com:443 "GET /login.php?act=slogin&to=&s=0&m=4&email= HTTP/1.1" 200 310
Получаю так же
vk_api.exceptions.BadPassword: Bad password
Куда еще копнуть?
Возможно там еще какие-то куки нужно добавить, посмотри через браузер что ВК ставит при переходе с мобильной версии на обычную

не похоже что дело в отсутствие какой-то куки) пробовал указывать прям в метод _vk_login, тож результата не дало)
Хмм, в _vk_login
куки чистятся:
https://github.com/python273/vk_api/blob/a70b2b513c6706a8a244f2c544c3565a8f418666/vk_api/vk_api.py#L238-L240
Если добавить добавление куки после, то работает
self.http.cookies.set('remixforce_full', '2', domain='.vk.com')
Не уверен как лучше пофиксить
Хотя не, там дальше падает при получении токена
но работает, если RE_TOKEN_URL
обновить
RE_TOKEN_URL = re.compile(
r'action="(https://login.vk.com/.*?)"'
)
блин, не хотелось бы вносить правки в код библиотеки, может выпустишь фикс?))