Image

Пожалуйста, помогите с авторизацией в ЖЖ через POST-запросы (РЕШЕНО)


Здравствуйте.
Я всего пару дней изучаю Питон, с конкретными целями и задачами, очень много пользую чужие куски кода, найденные свободно лежащими в инете и на данный момент, я столкнулся с нерешаемой для меня задачей.

Цель:

  • грамотно залогиниться в ЖЖ, через web-нитерфейс и POST-запросы.

  • п 1. нужен именно в таком виде, чтобы через web-нитерфейс и POST-запросы можно было меня некоторые настройки конкретного аккаунта.

  • Например, вот на этих страничках:

    1. http://www.livejournal.com/customize/

    2. http://www.jivelournal.com/customize/options.bml




Вот, как я пытаюсь это предпринять. В последней строке, возвращается страничка с логином, т.е. авторизация не прошла :(

# -*- coding: cp1251 -*-
import xmlrpclib
import urllib
import urllib2
import re
import hashlib
import md5

# вводим логин и пасс в жж
username = raw_input('Login: ')
passwd = raw_input('Password: ')

s = xmlrpclib.ServerProxy("http://www.livejournal.com/interface/xmlrpc", encoding='utf-8')
# через xmrpc получаем челендж-код для авторизации
arr = s.LJ.XMLRPC.getchallenge()
chal = arr['challenge']
#print 'arr: ', arr, '\n'
print 'chal: ', chal #, '\n'
# вычисляем response-код. таким образом, он вычисляется яваскриптом самом ЖЖ
resp = md5.new( str(chal) + str(md5.new(passwd).hexdigest()) ).hexdigest()
print 'resp: ', resp #, '\n'

params = urllib.urlencode({
'mode' : 'login',
'chal' : chal,
'resp' : resp,
'user' : username,
'password' : passwd
})

print 'http://www.livejournal.com/login.bml?' +params
opurl = urllib.urlopen('http://www.livejournal.com/login.bml?' +params)
print opurl.read()



Помогите, пожалуйста, разобарться, как грамотно достигнуть поставленной цели.

P.S. Кстати, параметры params, почему-то выводятся не в том порядке следования, как прописаны. Я не срастил.

... Крайст