こんにちは Keita_Nakamori(´・ω・`)です。
今日は python urllib.requetsモジュールに続きまして requestsモジュールを使ってみようと思います。名称がとても似ていますが別物です。
前回のurllib.requestがpython標準モジュールであるのに対して、
今回のrequestsモジュールは標準ではなく、より使いやすく改良されています。
エンコードなども自動でやってくれるので、こちらのほうが圧倒的に人気があります。
JSONをディクショナリで取り出すときは requests.json() があるので jsonモジュールも不要です。
Contents
IT用語 予備知識
HTTPステータスコード
HTTPにおいてWebサーバからのレスポンスの意味を表現する3桁の数字からなるコードです。例えば、200はリクエストに対して正常にレスポンスが得られたという意味になります。
requestsモジュール
GET
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import requests payload = {'aaa': '111', 'bbb': '222', 'ccc': '333'} url = 'http://httpbin.org/get' # GET の場合 req = requests.get(url, params=payload, timeout=1) #timeoutを設定しておくと良い # そのまま出力してみる print(req) # <Response [200]> # ディクショナリとして出力 print(req.json()) # dict この時点でデータはJSONはdictに変換済み。 # テキストとして出力 print(req.text) #str # HTTPステータスコードを出力 print(req.status_code) # 200 int """req.json()の出力 {'args': {'aaa': '111', 'bbb': '222', 'ccc': '333'}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.18.4'}, 'origin': '106.168.119.201, 106.168.119.201', 'url': 'https://httpbin.org/get?aaa=111&bbb=222&ccc=333'} """ |
POST
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import requests payload = {'aaa': '111', 'bbb': '222', 'ccc': '333'} # POST の場合 url = 'http://httpbin.org/post' # get を postに変更する req = requests.post(url, data=payload, timeout=1) #引数はparamsからdataに変更する # ディクショナリとして出力 print(req.json()) """req.json()の出力 GETのときとは、内容が異なる。 {'args': {}, 'data': '', 'files': {}, 'form': {'aaa': '111', 'bbb': '222', 'ccc': '333'}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Content-Length': '23', 'Content-Type': 'application/x-www-form-urlencoded', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.18.4'}, 'json': None, 'origin': '106.168.119.201, 106.168.119.201', 'url': 'https://httpbin.org/post'} |
PUT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
import requests payload = {'aaa': '111', 'bbb': '222', 'ccc': '333'} # PUT の場合 url = 'http://httpbin.org/put' # get を putに変更する req = requests.put(url, data=payload, timeout=1) #引数はparamsからdataに変更する # ディクショナリとして出力 print(req.json()) """ {'args': {}, 'data': '', 'files': {}, 'form': {'aaa': '111', 'bbb': '222', 'ccc': '333'}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Content-Length': '23', 'Content-Type': 'application/x-www-form-urlencoded', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.18.4'}, 'json': None, 'origin': '106.168.119.201, 106.168.119.201', 'url': 'https://httpbin.org/put'} """ |
DELETE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import requests payload = {'aaa': '111', 'bbb': '222', 'ccc': '333'} # DELETE の場合 url = 'http://httpbin.org/delete' # get を deleteに変更する req = requests.delete(url, data=payload, timeout=1) #引数はparamsからdataに変更する # ディクショナリとして出力 print(req.json()) """ {'args': {}, 'data': '', 'files': {}, 'form': {'aaa': '111', 'bbb': '222', 'ccc': '333'}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Content-Length': '23', 'Content-Type': 'application/x-www-form-urlencoded', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.18.4'}, 'json': None, 'origin': '106.168.119.201, 106.168.119.201', 'url': 'https://httpbin.org/delete'} """ |
The following two tabs change content below.
Keita N
最新記事 by Keita N (全て見る)
- 2024/1/13 ビットコインETFの取引開始:新たな時代の幕開け - 2024年1月13日
- 2024/1/5 日本ビジネスにおける変革の必要性とその方向性 - 2024年1月6日
- 2024/1/3 アメリカ債権ETFの見通しと最新動向 - 2024年1月3日