python 访问带有web认证的页面

作者: 2hei 发表于2009年11月 5日 16:28
版权声明: 可以转载, 转载时务必以超链形式标明文章原始出处和作者信息及版权声明
http://www.2hei.net/mt/2009/11/python-auth-web-http.html
python 访问带有web认证的页面,经测试方法一可用!

#!/usr/bin/env python
# -*- coding: utf-8 -*-

#方法一
#--------------------------------------------------------------
def request_auth_http(url, User = None, Pass = None):
    import urllib2
    # this creates a password manager
    passman = urllib2.HTTPPasswordMgrWithDefaultRealm()    
    passman.add_password(None, url, User, Pass)
    # create the AuthHandler
    authhandler = urllib2.HTTPBasicAuthHandler(passman)    
    opener = urllib2.build_opener(authhandler)    
    urllib2.install_opener(opener)
    pagehandle = urllib2.urlopen(url)
    data = pagehandle.read()
    pagehandle.close()
    return data

#方法二
#--------------------------------------------------------------
    #auth = "Basic %s" % base64.encodestring("%s:%s" % (User, Pass))[:-1]
    #request.add_header("User-Agent", "Python-2.5")
    #request.add_header("Authorization",auth)
    #opener = urllib2.build_opener()    
    #data = opener.open(request).read()
    #print data
    #htmlFile = urllib2.urlopen(request)
    #htmlData = htmlFile.read()
    #htmlFile.close()
    #return htmlData

#--------------------------------------------------------------
def main():
    url = "https://2hei.net/login"
    User = "user"
    Pass = "passwd"
    print request_auth_http(url,User,Pass)

#--------------------------------------------------------------
if __name__ == "__main__":
    main()

实际的结果是,方法一正解,方法二页面返回401错误。


| | Comments (0) | TrackBacks (0)

发表一个评论

关于这篇文章

这篇文章由2hei2009年11月 5日 16:28发布.

上一篇:wget访问带认证的web页面

下一篇:linux下用python实现文本menu

回到首页 或者查看归档文章