Форум сайта python.su
0
Здравствуйте полностью отснифил трафик между браузером и vk написал код но почему то не пашет
import requests import lxml.html from urlparse import urlparse def get_actionurl(htmlcode, formurl, formnumber = 0): """ получение урл для отправки данных из веб-формы """ action_url = lxml.html.fromstring(htmlcode).xpath('//form/@action')[formnumber] if urlparse(action_url).netloc == '': if action_url[:1] == '/': action_url = urlparse(formurl).scheme + '://' + urlparse(formurl).netloc + action_url else: if action_url[:1] == '?': action_url = formurl else: action_url = formurl + '/' + action_url return action_url def vkauth(login, password, vkbot = requests.session()): vkbotheaders = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.0; rv:14.0) Gecko/20100101 Firefox/14.0.1', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language':'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3', 'Accept-Encoding':'gzip, deflate', 'Connection':'keep-alive', 'DNT':'1' } vkbot.config['base_headers'].update(vkbotheaders) vkbot.encoding = 'utf-8' loginpage = vkbot.get('http://m.vk.com/login.php') actionurl = get_actionurl(loginpage.content, formurl = loginpage.url) vkbot.config['base_headers'].update({'Referer':loginpage.url}) vkbot.post(actionurl, data = {'email':login, 'pass':password}) return vkbot result = vkauth(vklogin, vkpass)
Отредактировано agryn (Окт. 21, 2012 20:28:05)
Офлайн
0
Протестировал библиотеку vk_api ver 3.1 (http://pastebin.com/g8gRc3Ct#)
при выполнении кода
from vk import login login(login, pass)
Отредактировано agryn (Окт. 21, 2012 21:29:44)
Офлайн
15
from grab import Grab g = Grab() url='http://m.vk.com' g.set_input("email", 'mylogin') g.set_input("pass", 'mypassword') g.submit()
Офлайн
173
Так вроде работает:
import requests import lxml.html username = '...' password = '...' headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.0; rv:14.0) Gecko/20100101 Firefox/14.0.1', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language':'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3', 'Accept-Encoding':'gzip, deflate', 'Connection':'keep-alive', 'DNT':'1' } s = requests.session(headers=headers) doc = lxml.html.fromstring(s.get('http://m.vk.com/').content) form = doc.forms[0] form.fields['email'] = username form.fields['pass'] = password r = s.post(form.action, data=form.form_values())
Офлайн
0
єтот вариант и у меня работал раньше но при выполнении єтого кода
from grab import Grab g = Grab() url='http://m.vk.com' g.go(url) g.set_input("email", 'mylogin') g.set_input("pass", 'mypassword') g.submit()
{"remixapi_sid": "deleted", "remixemail": "deleted", "remixpermit": "deleted", "remixmid": "deleted", "remixpass": "deleted", "remixsslsid": "deleted", "remixsid": "deleted", "remixgid": "deleted", "remixlang": "3"}
Отредактировано agryn (Окт. 21, 2012 22:05:02)
Офлайн
0
reclosedevСпасиб за код, но я не пойму то ли у меня руки не от туда ростут но и оннґ возвращает
Так вроде работает:import requests import lxml.html username = '...' password = '...' headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.0; rv:14.0) Gecko/20100101 Firefox/14.0.1', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language':'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3', 'Accept-Encoding':'gzip, deflate', 'Connection':'keep-alive', 'DNT':'1' } s = requests.session(headers=headers) doc = lxml.html.fromstring(s.get('http://m.vk.com/').content) form = doc.forms[0] form.fields['email'] = username form.fields['pass'] = password r = s.post(form.action, data=form.form_values())
remixmid=deleted
Офлайн
0
Охренеть! Получилось та только авторизация почемуто произошла при указании в качестве логина номера телефона!???
Офлайн
16
Я так делал:
def get_session_id(email, password): """ Authenticates user and returns session_id """ data = {'act': 'login', 'email': email, 'pass': password} resp = requests.get('https://login.vk.com/', params=data) if 'remixsid' in resp.cookies: return resp.cookies['remixsid'] else: return None
Офлайн