基于表单的Python认证

0 投票
1 回答
3021 浏览
提问于 2025-04-16 10:55

我正在尝试使用一段代码,这段代码是在Kent's Korner上找到的,用于基于表单的身份验证。至少有人告诉我,我想访问的网站是需要这种身份验证的。

但是我似乎无法通过登录页面。现在我用的代码是

Import urllib, urllib2, cookielib, string

# configure an opener that will handle cookies
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
urllib2.install_opener(opener)

# use the opener to POST to the login form and the protected page
params = urllib.urlencode(dict(username='user', password='stuff'))
f = opener.open('http://www.hammernutrition.com/forums/memberlist.php?mode=viewprofile&u=1323', params)
data = f.read()
f.close()
f = opener.open('http://www.hammernutrition.com/forums/memberlist.php?mode=viewprofile&u=1323')
data = f.read()
f.close()

1 个回答

3

你可以在Python中模拟一个网页浏览器,而且不需要消耗太多资源,方法是使用mechanize这个库(在Debian/Ubuntu系统中叫做python-mechanize)。这个库可以处理 cookies 和提交表单,就像真正的网页浏览器一样。一个很好的例子是Python Dropbox Uploader脚本,你可以根据自己的需求对它进行修改。

撰写回答