6

Mechanize (Python) 无法打开 http 摘要 URL,出现 401。我用谷歌搜索并尝试调试但没有成功。

我的代码看起来像这样。

import mechanize

project = "test"
baseurl = "http://trac.somewhere.net"
loginurl = "%s/%s/login" % (baseurl, project)
b = mechanize.Browser()
b.add_password(baseurl, "user", "secret", "some Realm")
b.open(loginurl)
4

3 回答 3

6

机械化声称参数应该是uri,用户名和密码作为参数,但是你有四个参数。urllib2.add_password 有四个参数是正确的,但是第一个参数应该是领域,而不是 uri。

http://wwwsearch.sourceforge.net/mechanize/

我会先尝试改变它。

trac 需要摘要吗?如果不是,下一步可能是尝试使用基本身份验证,作为测试是否有效,因为您可以使用 addHeader 添加它:

import base64
from mechanize import Browser
browser = Browser()
browser.addheaders.append(('Authorization', 'Basic %s' % base64.encodestring('%s:%s' % (user, pwd))))
于 2009-07-08T11:57:21.950 回答
4

对于使用 mechanize 的 http 身份验证,您需要提供该add_password方法的完整 url,而不仅仅是主机基地址。

import mechanize

project = "test"
baseurl = "http://trac.somewhere.net"
loginurl = "%s/%s/login" % (baseurl, project)
b = mechanize.Browser()
b.add_password(loginurl, "user", "secret", "some Realm")
b.open(loginurl)
于 2010-11-03T16:08:49.280 回答
0
#!/usr/bin/env python
# -*- coding: utf-8 -*- 

import mechanize

a=mechanize.Browser()
a.open("http://www.facebook.com/login.php")
a.select_form(nr=0)  #form number.
a["email"]="mailaddress"
a["pass"]="password"
a.submit()
print a
于 2010-04-17T16:35:43.643 回答