Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 14, 2011 13:41:50

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

[Python] авторизация на mail.ru

Всем привет! подскажите пожалуйста, как пройти авторизацию на сервисе маил.ру, что бы получить список писем?
я пробую вот так, но мне не совсем понятно что дальше делать с куками

import urllib.parse, http.client
useragent = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
auth = urllib.parse.urlencode({'page':'','post':'','login_from':'','Login':'testmail977','Domain':'mail.ru','Password':'testmail'})
conn = http.client.HTTPConnection('auth.mail.ru')
conn.request('POST', '/cgi-bin/auth', auth, useragent)
print(conn.getresponse().read().decode('utf-8'))
conn.close()
а вот что выводит инструкция принт
<html>
<head><title>Redirect to http://win.mail.ru/cgi-bin/checkcookie?id=79630a010b0f5c5f190502190a1d00071c03014f6a5d5e465e07070907061e0974711e4d5c4b455d505e590e0206155a58585c184a47&user=testmail977&domain=mail.ru&page=start</title></head>
<body><a href="http://win.mail.ru/cgi-bin/checkcookie?id=79630a010b0f5c5f190502190a1d00071c03014f6a5d5e465e07070907061e0974711e4d5c4b455d505e590e0206155a58585c184a47&user=testmail977&domain=mail.ru&page=start">http://win.mail.ru/cgi-bin/checkcookie?id=79630a010b0f5c5f190502190a1d00071c03014f6a5d5e465e07070907061e0974711e4d5c4b455d505e590e0206155a58585c184a47&user=testmail977&domain=mail.ru&page=start</a></body>
</html>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>302 Found</TITLE>
</HEAD><BODY>
<H1>Found</H1>
The document has moved <A HREF="http://win.mail.ru/cgi-bin/checkcookie?id=79630a010b0f5c5f190502190a1d00071c03014f6a5d5e465e07070907061e0974711e4d5c4b455d505e590e0206155a58585c184a47&amp;user=testmail977&amp;domain=mail.ru&amp;page=start">here</A>.<P>
<HR>
<ADDRESS>Apache/1.3.41 Server at auth.mail.ru Port 80</ADDRESS>
</BODY></HTML>



Офлайн

#2 Ноя. 14, 2011 14:10:23

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

[Python] авторизация на mail.ru

Вам нужно обрабатывать HTTP-редиректы, авторизоваться у вас получилось.

Офлайн

#3 Ноя. 14, 2011 16:25:31

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

[Python] авторизация на mail.ru

а покажи пожалуйста как обрабатывать на этом примере, а то я уже использую и urllib.request.Request который как бы сам должен идти по редиректу, но на страничку с письмами все равно не попадаю

import urllib.parse, http.cookiejar
cookie = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookie))
useragent = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
data = urllib.parse.urlencode({'page':'','post':'','login_from':'','Login':'testmail977','Domain':'mail.ru','Password':'testmail'})
data = data.encode('utf-8')
request = urllib.request.Request('http://e.mail.ru/cgi-bin/login', data, useragent)
response = urllib.request.urlopen(request)
print(response.read().decode('utf-8'))



Офлайн

#4 Ноя. 14, 2011 16:37:43

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

[Python] авторизация на mail.ru

Я пользуюсь urllib2, обычно вот так:

openers = [urllib2.HTTPRedirectHandler(),
urllib2.HTTPHandler(),
urllib2.HTTPSHandler(),
urllib2.HTTPCookieProcessor(cookie)]
opener = urllib2.build_opener(*openers)

Офлайн

#5 Ноя. 14, 2011 16:59:46

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

[Python] авторизация на mail.ru

Спасибо большое за помощь, но больше интересует вариант через http.client для Python3



Офлайн

#6 Ноя. 14, 2011 19:29:53

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

[Python] авторизация на mail.ru

Под рукой 3 нет.
Но там должно быть что-то подобное.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version