Python Web APIにて、ログイン情報を維持する方法「requests.Session()」

 本記事では、ログイン情報の入力フォーマットと、そのパスワードを非表示で受けつける雛形コードを載せました。
 さらに、ログイン情報を維持するために、オブジェクト作成してログインして、その状態を維持する雛形コードを載せました。

■ログイン情報の入力フォーマット

import requests
import getpass

# ユーザーID
print('ユーザーIDを入力下さい')
myID = input('userid: ')

# パスワード
print('ユーザーIDのパスワードを入力下さい')
myPASS = getpass.getpass('password: ')

 下図は実行後の状況です。入力したユーザーIDは表示されます。一方、入力したパスワードは表示されません。

f:id:HK29:20220414232057p:plain

■ログインして、そのセッションを維持する

# ログインURL
login_url = 'http://xxx'

# プロキシ設定(明示的に不要な場合はNoneを指定)
proxies = {
    'http': None,
    'https': None,
}

# ログイン情報
login_info = {
    'userid': myID,
    'password': myPASS,
}

# ログイン情報の維持(セッションのオブジェクトを生成)
ses = requests.Session()
res_login = ses.post(login_url, proxies = proxies, data = login_info)
print(res_login)
print(res_login.headers)
if res_login.status_code == 200:
    print('ログインに成功しました')
else:
    print('ログインに失敗しました')
    sys.exit()

この後に、インスタンス化したsesを用いてweb情報を取得してゆきます。例えば、res = ses.get(url) など。ログイン情報が不要な場合は、res = requests.get(url)と書きます。

以上

<広告>