0

Plex Media Server 用のエージェントを作成したいので、Python に飛び込もうとしていました。このエージェントは、HTTP 認証を使用して MyAnimeList.net API にアクセスします (詳細はこちら)。ユーザー名とパスワードは機能しますが、応答としてサーバーから 401 エラーが返される理由がわかりません。

ここにいくつかのコードがあります(プレックスがそう言ったので、私はpython 2.5を使用しています):)

import urllib2

username = "someUser"
password = "somePass"

url = "http://myanimelist.net/api/anime/search.xml?q=bleach"


password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
top_level_url = "http://myanimelist.net/"
password_mgr.add_password(None, top_level_url, username, password)
handler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(urllib2.HTTPHandler, handler)
request = urllib2.Request(url)
print request.get_full_url()
f = urllib2.urlopen(request).read()

print(f)

これは私が応答として得るものです

> http://myanimelist.net/api/anime/search.xml?q=bleach Traceback (most
> recent call last):   File
> "C:\Users\Daraku\Desktop\MAL.bundle\Contents\Code\__init__.py", line
> 16, in <module>
>     f = urllib2.urlopen(request).read()   File "C:\Python25\lib\urllib2.py", line 121, in urlopen
>     return _opener.open(url, data)   File "C:\Python25\lib\urllib2.py", line 380, in open
>     response = meth(req, response)   File "C:\Python25\lib\urllib2.py", line 491, in http_response
>     'http', request, response, code, msg, hdrs)   File "C:\Python25\lib\urllib2.py", line 418, in error
>     return self._call_chain(*args)   File "C:\Python25\lib\urllib2.py", line 353, in _call_chain
>     result = func(*args)   File "C:\Python25\lib\urllib2.py", line 499, in http_error_default
>     raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) HTTPError: HTTP Error 401: Unauthorized

これは私の初めてのPythonでのプログラミングであり、Webの多くの例と混乱していることに注意してください.urllib2で何かを行ったため、Python 3.0には存在しないと思います.

何か案は?または、これを行うためのより良い方法はありますか?

4

0 に答える 0