vk_api icon indicating copy to clipboard operation
vk_api copied to clipboard

Ошибка замены user-agent

Open r4hx opened this issue 5 years ago • 8 comments

Хочу сменить 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'}

r4hx avatar May 14 '19 06:05 r4hx

Видимо дело в том, что вк пытается редирекнуть на мобильную версию. Можно попробовать поставить куку remixforce_full=2 руками

python273 avatar May 15 '19 11:05 python273

Установил куку через

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

Куда еще копнуть?

r4hx avatar May 15 '19 14:05 r4hx

Возможно там еще какие-то куки нужно добавить, посмотри через браузер что ВК ставит при переходе с мобильной версии на обычную

python273 avatar May 15 '19 14:05 python273

image

не похоже что дело в отсутствие какой-то куки) пробовал указывать прям в метод _vk_login, тож результата не дало)

r4hx avatar May 15 '19 15:05 r4hx

Хмм, в _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')

Не уверен как лучше пофиксить

python273 avatar May 15 '19 18:05 python273

Хотя не, там дальше падает при получении токена

python273 avatar May 15 '19 18:05 python273

но работает, если RE_TOKEN_URL обновить

RE_TOKEN_URL = re.compile(
    r'action="(https://login.vk.com/.*?)"'
)

python273 avatar May 15 '19 18:05 python273

блин, не хотелось бы вносить правки в код библиотеки, может выпустишь фикс?))

r4hx avatar May 17 '19 04:05 r4hx