概要
Urllib.request
とは Python の標準パッケージに含まれる HTTP クライアントライブラリです。
ここでは基本的な使用方法について紹介します。
GETリクエスト
from urllib import request
request.urlopen('https://httpbin.org/get')
POSTリクエスト
req = request.Request('https://httpbin.org/post', method='POST')
request.urlopen(req)
他にも method
引数に PATCH
や DELETE
を指定することで対応するリクエストを送信することができる。
リクエストボディをつける
from urllib import request, parse
req = request.Request(
'https://httpbin.org/post',
parse.urlencode({'test': 123}).encode('utf-8'),
method='POST'
)
request.urlopen(req)
リクエストパラメータをつける
from urllib import request, parse
req = request.Request(
'{}?{}'.format('https://httpbin.org/get', parse.urlencode({'test': 123}))
)
request.urlopen(req)
リクエストヘッダを指定する
from urllib import request, parse
req = request.Requset(
'https://httpbin.org/post',
data=parse.urlencode({'test': 123}).encode('utf-8'),
headers={'Content-Type': 'application/json'},
method='POST'
)
request.urlopen(req)
ベーシック認証
from urllib import request, parse
import base64
req = request.Request(
'http://example/secret',
headers={
'Authorization': 'Basic' + (base64.b64encode('user:password'.encode())).decode('ascii')
}
)
request.urlopen(req)
レスポンスを扱う
res = request.urlopen('https://httpbin.org/get')
# ステータスコード
res.status
# レスポンスヘッダー
res.headers
# レスポンスボディ
res.read()