0

mwclientを使用して、HTTPSの背後にある内部Wikiを編集したいと思います。 このページは、次のようなホストタプルを渡すことができることを示しています。

site = mwclient.Site(('https'、'wiki.whatever.com'))

ただし、Apacheで認証する方法がわかりません。認証を使用してurllib2オープナーハンドラーを設定する必要がありますか?

python-wikitoolsで動作するソリューションも歓迎されますが、httpsの例もありません。

更新:おそらく、Wikiへのログインに使用しているのと同じユーザーIDとパスワードを使用していますか?ただし、その場合でもエラーが発生します。

Traceback (most recent call last): File "C:\ddc\DDC_Toolbox\python_root\apps\create_new_project\trunk\create_new_project.py", line 36, in <module> site = mwclient.Site(('https',url)) File "C:\bin\Python27\lib\site-packages\mwclient-0.6.5-py2.7.egg\mwclient\client.py", line 92, in __init__ self.site_init() File "C:\bin\Python27\lib\site-packages\mwclient-0.6.5-py2.7.egg\mwclient\client.py", line 100, in site_init siprop = 'general|namespaces', uiprop = 'groups|rights') File "C:\bin\Python27\lib\site-packages\mwclient-0.6.5-py2.7.egg\mwclient\client.py", line 165, in api info = self.raw_api(action, **kwargs) File "C:\bin\Python27\lib\site-packages\mwclient-0.6.5-py2.7.egg\mwclient\client.py", line 248, in raw_api json_data = self.raw_call('api', data).read() File "C:\bin\Python27\lib\site-packages\mwclient-0.6.5-py2.7.egg\mwclient\client.py", line 223, in raw_call url, data = data, headers = headers) File "C:\bin\Python27\lib\site-packages\mwclient-0.6.5-py2.7.egg\mwclient\http.py", line 226, in post path, headers, data) File "C:\bin\Python27\lib\site-packages\mwclient-0.6.5-py2.7.egg\mwclient\http.py", line 161, in post return self.request('POST', host, path, headers, data) File "C:\bin\Python27\lib\site-packages\mwclient-0.6.5-py2.7.egg\mwclient\http.py", line 152, in request raise errors.HTTPStatusError, (res.status, res) mwclient.errors.HTTPStatusError: (401, <httplib.HTTPResponse instance at 0x0241C0D0>)

4

2 に答える 2

1

まあ、mwclienturllib2を使用しないので、urllib2AuthHandlerをインストールしても何も起こりません。

を使用してhttplibおり、ソースをざっと見てみると、ライブラリから送信されたリクエストに独自のヘッダーを追加する方法はないようです。そのため、カスタムのAuthorizationヘッダーを追加すると、ライブラリ自体を変更しないと機能しません。

python-wikitools一方、を使用しますurllib2が、それ自体のオープナーをインスタンス化し、それに認証ハンドラーを追加できるようにするには、ライブラリを変更する必要もあります-

そのため、残念ながら、どちらのAPIでも、すぐに認証を使用することはできません。

于 2012-05-28T20:46:10.210 に答える
0

python-wikitoolsにHTTPS認証を追加することができました。パッケージのメンテナにパッチをアップロードする方法について説明します。

于 2012-05-29T18:09:33.077 に答える