Найти - Пользователи
Полная версия: Авторизация одноклассники
Начало » Network » Авторизация одноклассники
1
yss
#coding=utf-8
import httplib
import urllib
import re
conn = httplib.HTTPConnection("m.odnoklassniki.ru", 80)
headers = {}
headers['User-Agent'] = "Mozilla/5.0 (X11; Linux i686; rv:10.0.6) Gecko/20100101 Firefox/10.0.6"
headers['Accept'] = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
conn.request("GET", "/", None, headers)
res = conn.getresponse()
tkn = re.search(r"/dk\?bk=GuestMain&st\.cmd=main&tkn=([0-9]{4})", res.read()).group(1)
sid = re.search(r"SERVERID=(\S+);", res.getheader('Set-Cookie')).group(1)
headers['Cookie'] = "SERVERID=%s; BANNER_LANG=ru; community-lang=ru" % (sid)
print tkn, sid
params = urllib.urlencode({"fr.posted": "set",
                           "fr.needCaptcha": "",
                           "fr.login": "admin",
                           "fr.password": "pass",
                           "button_login": "Войти"})
conn.request("POST", "/dk?bk=GuestMain&st.cmd=main&tkn=%s" % (tkn), params, headers)
res = conn.getresponse()
print res.read()
print res.status
print res.getheaders()
conn.close()

SERVERID считывает, токен тоже, но почему-то не авторизовывается. Пробовал написать авторизацию для других сайтов - все ок, а тут - ничуть не бывало.
odnochlen
Насколько блевотно это выглядит после граба

Минусатору: после граба код выглядит нечитаемым, поэтому читать я его не буду. Может, кто-то другой тебе поможет. А хочешь быть как человек - юзай requests или grab.
agryn
Возможно все дело в Keepalive (после разрыва соединения нужно заново авторизоваться), насколько знаю httplib и urllib не поддерживают этот режим.
odnochlen
agryn
Возможно все дело в Keepalive (после разрыва соединения нужно заново авторизоваться)
Бред.
Doberman26rus
а что в ответе пишет?
2keyviewer
Да лан, читабельно все выглядит!
sypper-pit
Есть предположение что у тебя падает сессия прежде чем ты успеваешь обработать и ввести данные для входа. Попробуй на zbrowser реализацию сделать или опиши подробнее что необходимо получить.
то что я вижу у тебя 2 раза в коде встречается res = conn.getresponse() и соответственно куки не сохраняются для предыдущий сессии. Или у тебя до этого выпадает ошибка ?
ajib6ept
Поменялось наверно что-то за 2 года
sypper-pit
да вот и и хотим узнать автор наверное решил эту проблему
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB