4

ユーザー名とパスワードが必要な URL を Python で開こうとしています。私の特定の実装は次のようになります。

http://char_user:char_pwd@casfcddb.example.com/......

コンソールに次のエラーが吐き出されます。

httplib.InvalidURL: nonnumeric port: 'char_pwd@casfcddb.example.com'

私は urllib2.urlopen を使用していますが、エラーは、ユーザーの資格情報を理解していないことを意味しています。「:」を見て、パスワードと実際のアドレスではなくポート番号を期待していること。ここで私が間違っていることはありますか?

4

2 に答える 2

0

BasicAuth の処理が必要で、urllib しか利用できない (urllib2 やリクエストがない) 状況に遭遇しました。Ukuからの答えはほとんどうまくいきましたが、ここに私の改造があります:

import urllib.request
url = 'https://your/url.xxx'
username = 'username'
password = 'password'
passman = urllib.request.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, url, username, password)
auth_handler = urllib.request.HTTPBasicAuthHandler(passman)
opener = urllib.request.build_opener(auth_handler)
urllib.request.install_opener(opener)
resp = urllib.request.urlopen(url)
data = resp.read()
于 2017-06-04T14:04:30.223 に答える