基于表单的Python认证
我正在尝试使用一段代码,这段代码是在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脚本,你可以根据自己的需求对它进行修改。