LoginSignup
1
2

More than 1 year has passed since last update.

「この猫なに猫?」APIをPythonでたたいてみた!

Posted at

はじめに

今回はこちらの「この猫なに猫?」APIをPythonからたたいてみます。

開発環境

  • MacBook Pro (13-inch, 2018)
  • macOS Monterey 12.3.1
  • Visual Studio Code 1.73.1
  • Python 3.9

それでは実際にたたいてみます

仕様書

image.png

このURLに識別したい画像をPOSTすると結果がJSON形式で返ってきます。

実行するには

「この猫なに猫?」APIを利用するにあたって、ユーザー登録が必要です。

「ユーザー名」「メールアドレス」「パスワード」を入れてsingupをクリックし、届いたメールから認証すれば登録完了です。

image.png

調べたい猫の画像を用意したら実際に実行してみます!
ちなみに今回はスコティッシュフォールドの画像を準備しました。
cat.jpg

まずはターミナルからcurlコマンドで叩いてみる

curl -u xxx:yyy -F "image=@cat.jpg" http://whatcat.ap.mextractr.net/api_query
#xxx : ユーザー名
#yyy : パスワード

image@=の後には画像ファイルの名前を記載します。

そして結果がこちら
スクリーンショット 2022-11-18 13.04.47.png

上位5種の猫種類とその確立値が出力されました!
スコティッシュフォールドの確率値が1.0となっているので、予測通りになっています。

続いてPythonから叩いてみる

今回はRequestsのPOSTメソッドを使っていきます。

pip install requests

上記のようにpipでインストールしておきます。

what-cat.py
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_nameuser_passにはそれぞれユーザー名とパスワードを格納します。

Basic認証を使用したデータを取得したい時は、POSTメソッドを使って上記のようにauthの引数にBasic認証の情報を設定します。

Basic認証とは?

特定のWebサイトのページなどにアクセスする際、制限をかけることができる認証方法の1つ。
アクセスしようとすると、ユーザーIDやパスワードを求められます。

最後にPOSTメソッドの引数にURL、読み込むファイル、そしてユーザー名とパスワードはauthに引き渡して実行したら完成!

スクリーンショット 2022-11-18 14.37.17.png

curlで叩いた時と同じ結果が返ってきました!

まとめ

  • PythonでAPIを叩いた
  • Basic認証はページにアクセス制限をかける認証方法
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2