Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 10, 2012 07:21:48

yss
Зарегистрирован: 2012-08-08
Сообщения: 3
Репутация: +  1  -
Профиль   Отправить e-mail  

Авторизация одноклассники

#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 считывает, токен тоже, но почему-то не авторизовывается. Пробовал написать авторизацию для других сайтов - все ок, а тут - ничуть не бывало.

Отредактировано yss (Авг. 10, 2012 07:22:12)

Офлайн

#2 Авг. 10, 2012 22:21:39

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Авторизация одноклассники

Насколько блевотно это выглядит после граба

Минусатору: после граба код выглядит нечитаемым, поэтому читать я его не буду. Может, кто-то другой тебе поможет. А хочешь быть как человек - юзай requests или grab.

Отредактировано odnochlen (Авг. 11, 2012 15:49:27)

Офлайн

#3 Авг. 12, 2012 21:26:50

agryn
От: Украина
Зарегистрирован: 2011-12-14
Сообщения: 189
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация одноклассники

Возможно все дело в Keepalive (после разрыва соединения нужно заново авторизоваться), насколько знаю httplib и urllib не поддерживают этот режим.

Офлайн

#4 Авг. 13, 2012 15:45:52

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Авторизация одноклассники

agryn
Возможно все дело в Keepalive (после разрыва соединения нужно заново авторизоваться)
Бред.

Офлайн

#5 Авг. 22, 2012 07:52:53

Doberman26rus
От: Ставрополь
Зарегистрирован: 2009-03-16
Сообщения: 128
Репутация: +  1  -
Профиль   Отправить e-mail  

Авторизация одноклассники

а что в ответе пишет?



подпись

Офлайн

#6 Авг. 17, 2014 23:38:51

2keyviewer
Зарегистрирован: 2012-12-22
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация одноклассники

Да лан, читабельно все выглядит!

Офлайн

#7 Авг. 28, 2014 10:40:35

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Авторизация одноклассники

Есть предположение что у тебя падает сессия прежде чем ты успеваешь обработать и ввести данные для входа. Попробуй на zbrowser реализацию сделать или опиши подробнее что необходимо получить.
то что я вижу у тебя 2 раза в коде встречается res = conn.getresponse() и соответственно куки не сохраняются для предыдущий сессии. Или у тебя до этого выпадает ошибка ?

Офлайн

#8 Авг. 28, 2014 11:19:05

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

Авторизация одноклассники

Поменялось наверно что-то за 2 года



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

#9 Авг. 31, 2014 22:54:47

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Авторизация одноклассники

да вот и и хотим узнать автор наверное решил эту проблему

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version