Уведомления

Группа в Telegram: @pythonsu

#1 Март 27, 2012 13:40:24

Антон
От:
Зарегистрирован: 2011-02-06
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

POST запрос

Подскажите пожалуйста почему не получается Залогиниться на mail.ru?
На C# на mail.ru авторизуюсь так:

String postData = "Password=x12345&Login=xxx&Domain=mail.ru&page=http://otvet.mail.ru/vote/";
            byte[] Bytes = Encoding.UTF8.GetBytes(postData);
            string AdditionalHeaders = "Content-Type: application/x-www-form-urlencoded" + Environment.NewLine;
            webBrowser1.Navigate("https://auth.mail.ru/cgi-bin/auth", "", Bytes, AdditionalHeaders);

На Python пытаюсь:
loginData= urllib.urlencode({
'Domain':'mail.ru',
'Login':'xxx',
'Page':'http://otvet.mail.ru/login/?url=http://otvet.mail.ru/vote/',
'Password':'12345'
cookieStore = cookielib.CookieJar()
cookieOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieStore))
authPageData = cookieOpener.open('https://auth.mail.ru/cgi-bin/auth',loginData).read()
fileHandle = open('auth.html', 'w')
fileHandle.write(authPageData)
fileHandle.close()
авторизация не происходит.(хотя на том же yandex.ru все нормально)



Офлайн

#2 Апрель 3, 2012 07:05:01

kazaff
От:
Зарегистрирован: 2011-08-12
Сообщения: 26
Репутация: +  2  -
Профиль   Отправить e-mail  

POST запрос

Это потому что на C# вы используйте для авторизации браузер, а в питоне просто опенером урллиба. Возможно при авторизации на майл.ру встроены какие-нибудь JS-скрипты, которые должны быть выполнены, но урллиб не умеет этого.

Если пишете какие-нибудь регеры или нечто подобное, советую посмотреть на селениум http://seleniumhq.org/ или подобные продукты

Еще есть spynner, но он сыроват.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version