本記事ではPythonのサードパーティライブラリである「Requests」で認証付きリクエストを行う方法を紹介します。
その他
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)