[Python] RequestsでBasic/Digest/Form認証リクエストする方法。

本記事ではPythonのサードパーティライブラリである「Requests」で認証付きリクエストを行う方法を紹介します。

その他

目次

Basic認証を行う方法

Basic認証を行うためには認証用のメソッドをインポートする必要があります。

import requests
from requests.auth import HTTPBasicAuth

url = https://google.co.jp/s/

response = requests.get(url, auth=HTTPBasicAuth('user_id', 'password'))

Digest(ダイジェスト)認証を行う方法

Digest(ダイジェスト)認証を行うためには認証用のメソッドをインポートする必要があります。

import requests
from requests.auth import HTTPDigestAuth

url = https://google.co.jp/s/

response = requests.get(url, auth=HTTPDigestAuth('user_id', 'password'))

Form認証を行う方法

Form認証を行うためには少々手間が必要です。

フォームにあるセッション情報を用意してあげる必要があり、CRSF(クロスサイト・リクエストフォージェリ対策)対策でTokenが必要である。

BeautifulSoup4を使用してHTMLからTokenを取得して、これとログイン情報を渡して送信します。

from bs4 import BeautifulSoup
import requests

url = '<任意のURL>'

payload = {
    'token': <後でトークンを取得する>
    'username ': <任意のユーザ名>,
    'password': <パスワード>
}

# authenticity_tokenの取得
s = requests.Session()
r = s.get(url)
soup = BeautifulSoup(r.text)
payload['token'] = soup.find(attrs={'name': 'token'}).get('value')

# ログイン
s.post('https://qiita.com/login', data=payload)
よかったらシェアしてね!
  • URLをコピーしました!
目次