Отправка формы входа с использованием Python 3.1 - PullRequest
1 голос
/ 30 января 2011

Я пытаюсь войти на этот сайт: http://www.artofproblemsolving.com/Forum/ucp.php?mode=login, используя скрипт Python 3.1.3. В то время у меня было это:

import webbrowser
import urllib.request
import cgi
import cgitb
import urllib.parse
import hashlib
import http.cookiejar

p = urllib.parse.urlencode({'username':'MYUSERNAME','password':"MYPASSWORD"})

cj = http.cookiejar.CookieJar()
o = urllib.request.build_opener( urllib.request.HTTPCookieProcessor(cj) )
urllib.request.install_opener( o )

f = o.open( 'http://www.artofproblemsolving.com/Forum/ucp.php?mode=login',  p )
data = f.read()
f.close()
htm = open("file1.html", "w")
htm.write(str(data))
htm.close

f = o.open( 'http://www.artofproblemsolving.com/PAGEFORWHICHLOGINISREQUIRED' )
data = f.read()
f.close()
htm = open("file2.html", "w")
htm.write(str(data))
htm.close

print('fin')

Однако, когда я запускаю этот код, file1.html содержит саму форму входа (без сообщений), а file2.html содержит страницу «Вы не вошли».

Может кто-нибудь сказать мне, что я делаю не так? Извините за мою некомпетентность, я довольно новичок в Python. Заранее спасибо!

P.S. Может ли это касаться MD5 хеширования пароля? Я работал с библиотекой hashlib, и мне не повезло. Если это так, может кто-нибудь объяснить, как я буду хэшировать свой пароль?

Ответы [ 2 ]

1 голос
/ 30 января 2011

Когда я отправляю эту форму, кнопка входа отображается как &login=Login. Возможно, эта форма требует, чтобы вы также отправили это?

0 голосов
/ 30 января 2011

Возможно, вам будет намного лучше использовать <a href="http://wwwsearch.sourceforge.net/mechanize/download.html" rel="nofollow">Mechanize</a>. Это особенно полезно для отправки форм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...