Форум сайта python.su
Пытаюсь авторизоваться вконтакте.
Пока безрезультатно, кто может помочь? ))
import requests def autoriz (): session = requests.Session() url = 'https://login.vk.com/?act=login' data = {'email': 'Login', 'pass': 'Password'} print(requests.post(url, data=data).text) def main(): autoriz() if __name__ == "__main__": main()
https://login.vk.com/?act=login POST /?act=login HTTP/1.1 Host: login.vk.com User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:54.0) Gecko/20100101 Firefox/54.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Referer: https://vk.com/ Cookie: remixlang=0; remixlhk=91449f35rd9335b6f8; remixflash=0.0.0; remixscreen_depth=24; remixdt=28800; remixseenads=1; t=8bb65e68e7aba59d62bc61da; remixtst=6d0d172c Connection: keep-alive Upgrade-Insecure-Requests: 1 act=login&role=al_frame&expire=&captcha_sid=&captcha_key=&_origin=https%3A%2F%2Fvk.com&ip_h=9c7275eda134r621f8&lg_h=33770f44feb32a7873&email=login&pass=password: undefined
Офлайн
Отправлять на 'https://login.vk.com/?act=login' логин/пароль нужно не голыми.
Сначала идём на страницу 'https://vk.com/', получаем там предварительные cookies.
Из текста страницы взять скрытые параметры. Вот они в коде html:
<input type="hidden" name="act" id="act" value="login"> <input type="hidden" name="role" value="al_frame" /> <input type="hidden" name="expire" id="index_expire_input" value="" /> <input type="hidden" name="_origin" value="https://vk.com" /> <input type="hidden" name="ip_h" value="777777777777777777" /> <input type="hidden" name="lg_h" value="555555555555555555" />
session.post(url, data=data)
import requests import re def autoriz (): username = 'username' password = 'password' url_1 = 'https://vk.com/' url_2 = 'https://login.vk.com/?act=login' with requests.Session() as s: html = s.get(url_1).content # print html.decode('cp1251').encode('cp866', 'ignore') matcher = re.compile(r'<input type="hidden" name="(\w+?)".*? value="(.*?)" />') data = dict(matcher.findall(html)) data.update({ 'email': username, 'pass': password }) login_vk = s.post(url_2, data=data) # print login_vk.status_code # print login_vk.headers, '\n' # print login_vk.text.encode('cp866', 'ignore') session_cookies = s.cookies.get_dict(domain='.vk.com') print '\nsession_cookies:', session_cookies return session_cookies def main(): session_cookies = autoriz() if __name__ == "__main__": main()
Отредактировано Vintets (Июль 28, 2017 09:12:16)
Офлайн