首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >机械化自定义auth处理程序

机械化自定义auth处理程序
EN

Stack Overflow用户
提问于 2010-01-28 08:07:08
回答 1查看 2.5K关注 0票数 4

我想在mechanize.Browser()中使用mechanize.Browser,我让HTTPNtlmAuthHandler与urllib2和mechanize.urlopen()一起工作,并尝试将它与Browser()一起使用,但它不起作用。

下面是我为urlopen使用的代码

代码语言:javascript
复制
passman = mechanize.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, url, user, password)
auth_NTLM = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(passman)

opener = mechanize.build_opener(auth_NTLM)
mechanize.install_opener(opener)
mechanize.urlopen(baseurl)

根据请求进行跟踪,

代码语言:javascript
复制
harrisony@lithium:~$ python sitefoo.py 
now running mechanize.urlopen
<addinfourl at 169181868 whose fp = <httplib.HTTPResponse instance at 0xa15858c>>


now running mechanize.Browser then br.open
Traceback (most recent call last):
  File "sitescreaper.py", line 21, in <module>
    br.open(baseurl)
  File "/usr/lib/python2.6/dist-packages/mechanize/_mechanize.py", line 209, in open
    return self._mech_open(url, data, timeout=timeout)
  File "/usr/lib/python2.6/dist-packages/mechanize/_mechanize.py", line 261, in _mech_open
    raise response
mechanize._response.httperror_seek_wrapper: HTTP Error 401: Unauthorized
EN

回答 1

Stack Overflow用户

发布于 2011-02-25 22:48:38

可能有更好的选择,但我能让它工作的唯一方法是删除HTTPRobotRulesProcessor处理程序,这在某种程度上阻止了HTTPNtlmAuthHandler的调用。

注意:下面的代码也碰巧删除了ProxyHandler,以便绕过代理服务器--如果适用的话删除。

代码语言:javascript
复制
passman = mechanize.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, baseurl, user, password)
auth_NTLM = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(passman)

browser = mechanize.Browser()
browser.add_handler(auth_NTLM)

handlersToKeep = []
for handler in browser.handlers:
    if not isinstance(handler, (mechanize._auth.ProxyHandler, 
                                mechanize._urllib2_support.HTTPRobotRulesProcessor)):
        handlersToKeep.append(handler)
browser.handlers = handlersToKeep

browser.open(url)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2153095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档