はじめに
今回はこちらの「この猫なに猫?」APIをPythonからたたいてみます。
開発環境
- MacBook Pro (13-inch, 2018)
- macOS Monterey 12.3.1
- Visual Studio Code 1.73.1
- Python 3.9
それでは実際にたたいてみます
仕様書
このURLに識別したい画像をPOSTすると結果がJSON形式で返ってきます。
実行するには
「この猫なに猫?」APIを利用するにあたって、ユーザー登録が必要です。
「ユーザー名」「メールアドレス」「パスワード」を入れてsingupをクリックし、届いたメールから認証すれば登録完了です。
調べたい猫の画像を用意したら実際に実行してみます!
ちなみに今回はスコティッシュフォールドの画像を準備しました。
まずはターミナルからcurlコマンドで叩いてみる
curl -u xxx:yyy -F "image=@cat.jpg" http://whatcat.ap.mextractr.net/api_query
#xxx : ユーザー名
#yyy : パスワード
image@=
の後には画像ファイルの名前を記載します。
上位5種の猫種類とその確立値が出力されました!
スコティッシュフォールドの確率値が1.0となっているので、予測通りになっています。
続いてPythonから叩いてみる
今回はRequestsのPOSTメソッドを使っていきます。
pip install requests
上記のようにpip
でインストールしておきます。
import requests
url = "http://whatcat.ap.mextractr.net/api_query"
file = {
'image': open('cat.jpg', "rb")
}
user_name = "xxx"
user_pass = "yyy"
response = requests.post(url, files=file, auth=(user_name,user_pass))
print(response.json())
file
に読み込みたい画像ファイルを置きます。
user_name
とuser_pass
にはそれぞれユーザー名とパスワードを格納します。
Basic認証を使用したデータを取得したい時は、POSTメソッドを使って上記のようにauth
の引数にBasic認証の情報を設定します。
Basic認証とは?
特定のWebサイトのページなどにアクセスする際、制限をかけることができる認証方法の1つ。
アクセスしようとすると、ユーザーIDやパスワードを求められます。
最後にPOSTメソッドの引数にURL、読み込むファイル、そしてユーザー名とパスワードはauth
に引き渡して実行したら完成!
curlで叩いた時と同じ結果が返ってきました!
まとめ
- PythonでAPIを叩いた
- Basic認証はページにアクセス制限をかける認証方法