6

Mechanize (Python) が 401 で失敗し、http ダイジェスト URL を開くことができません。私はグーグルでデバッグを試みましたが、成功しませんでした。

私のコードは次のようになります。

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

Mechanize は、パラメータはパラメータとして uri、username、および password である必要があると主張していますが、4 つのパラメータがあります。urllib2.add_password には 4 つのパラメーターが適切ですが、最初のパラメーターは 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 に答える