加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在python上访问带有基本身份验证的网页

发布时间:2020-12-16 21:30:02 所属栏目:Python 来源:网络整理
导读:我正在尝试使用机械化连接网页,但我收到了http 401错误. 这是我的代码; import base64,mechanizeurl = "http://www.dogus.edu.tr/dusor/FrmMain.aspx"user = "user"pwd = "pwd"br = mechanize.Browser()br.set_handle_robots(False)br.set_handle_refresh(me
我正在尝试使用机械化连接网页,但我收到了http 401错误.

这是我的代码;

import base64,mechanize

url = "http://www.dogus.edu.tr/dusor/FrmMain.aspx"
user = "user"
pwd = "pwd"

br = mechanize.Browser()
br.set_handle_robots(False)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(),max_time=1)
br.addheaders = [('User-agent','Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]

br.add_password(url,user,pwd)
#br.addheaders.append(('Authorization','Basic %s' % base64.encodestring('%s:%s' % (user,pwd))))
print br.open(url).read()

add_password和addheaders都不起作用.是因为我从未指定过领域吗?我怎样才能获得该网页使用的领域?我正在使用的用户名和密码是正确的,因为我可以使用带有这些凭据的chrome登录.

解决方法

您用作示例页面的站点需要 NTLM身份验证.您可以通过查看返回的HEADER字段来查看此信息.例如curl -I http://www.dogus.edu.tr/dusor/FrmMain.aspx返回:
HTTP/1.1 401 Unauthorized
Content-Length: 1293
Content-Type: text/html
Server: Microsoft-IIS/7.0
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
Date: Mon,07 Apr 2014 21:24:09 GMT

行WWW-Authenticate:NTLM说,使用哪种身份验证方法.我认为这个问题Use python mechanize to log into pages with NTLM authentication的答案对你有帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读