Хорошо, я только что реализовал это сам, и, кажется, вы просто забыли одно значение - вот почему я всегда использую TamperData или что-то подобное, чтобы просто проверять, что мой браузер отправляет на сервер - ПУТЬ проще и короче, чем просматривать HTML.
В любом случае просто добавьте 'redir': 1 к вашему диктату, и оно будет работать:
import http.cookiejar
import urllib
if __name__ == '__main__':
cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
login_data = urllib.parse.urlencode({'username' : username, 'password' : password, 'login' : 1, 'redir' : 1})
response = opener.open("http://www.megaupload.com/?c=login", login_data)
with open("test.txt", "w") as file:
file.write(response.read().decode("UTF-8")) #so we can compare resulting html easily
Хотя я должен сказать, что сейчас я посмотрю на механизацию и сотрудничество - я делаю что-то подобное достаточно часто, чтобы это могло быть весьма полезным. Хотя я не могу не подчеркнуть, что самой важной помощью по-прежнему является плагин для браузера, который позволяет проверять отправленные данные;)