Задать вопрос

Python, авторизация на vk.com?

Имеется скрипт, который получает данные с vk.com/al_friends.php. Опытным путём установлено, что необходимо только куки remixsid. Пытаюсь получить по инструкциям из интернета (используется requests):

auth_params = {'act': 'login', 'email': 'мыло', 'pass': 'пароль'}
r = requests.get('http://login.vk.com', params=auth_params)
# на данном этапе всё хорошо, возвращается страница пользователя, как будто авторизовались

# далее надо получить параметр __q_hash. Его (по мануалу) вытягиваем со страницы:
parse_hash = re.search('hash=([a-z0-9]+)', r.text)
hash = parse_hash.group(1)
# единственное место, где встречается hash= в коде страницы — ссылка «выйти» (https://login.vk.com/?act=logout&hash=…)

# теперь нужно сделать запрос к vk.com/login.php, используя полученный хэш:
auth_params = {'act': 'slogin', 'role': 'fast', 'redirect': '1', 'to': '', 's': '1', '__q_hash': hash}
r = requests.get('http://vk.com/login.php', params=auth_params)
# а вот теперь облом, получаем страницу с формой авторизации. Хотя по мануалу мы должны получить из неё remixsid (опять же, регэкспом из кода страницы)



Пробовал с указанием юзер-агента ('User-Agent': 'Mozilla/5.0' — перекидывает на мобильную версию) и без (отдаёт полную версию).

Собственно, вопрос — что не так? Или я неправильно понял, или алгоритм авторизации изменили, и __q_hash теперь по-другому получать надо.


Также приветствуются предложения по альтернативному способу получения remixsid (скопировать самому из браузера не предлагать, хочется полной автономности :-)
  • Вопрос задан
  • 21699 просмотров
Подписаться 9 Оценить Комментировать
Ответ пользователя dimka665 К ответам на вопрос (3)
@dimka665
Прорекламирую свой модуль для доступа к API vk.com: https://github.com/dimka665/vk

Реализована авторизация. Работает на Python2.7, Python3.3
Ответ написан
Комментировать