URL からの自動ダウンロードを 1 日 1 回行う Python スクリプトがあります。
最近、URL を保護する認証が変更されました。Internet Explorer で動作させるには、SupportedEncryptionTypes "0x7FFFFFFF" をレジストリ エントリのどこかに追加して、Kerberos の DES を有効にする必要がありました。次に、サイトを参照すると、IE でドメイン/ユーザー/パスワードの入力を求められます。
以前に動作していた私のpythonコードは次のとおりです。
def __build_ntlm_opener(self):
passman = HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, self.answers_url, self.ntlm_username, self.ntlm_password)
ntlm_handler = HTTPNtlmAuthHandler(passman)
opener = urllib.request.build_opener(ntlm_handler)
opener.addheaders= [
#('User-agent', 'Mozilla/5.0 (Windows NT 6.0; rv:5.0) Gecko/20100101 Firefox/5.0')
('User-agent', 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)')
]
return opener
オープナーを使用すると、コードは単純な 401 で失敗します。
urllib.error.HTTPError: HTTP Error 401: Unauthorized
私は Kerberos や DES についてあまり知りませんが、これまでのところ、urllib がこれらの使用をサポートしているかどうかはわかりません。
これを再び機能させるために使用できるサードパーティのライブラリまたはトリックはありますか?