LoginSignup
22
15

More than 1 year has passed since last update.

湧き水APIをPythonでたたいてみた!

Posted at

はじめに

タイトルどおり、Pythonを使ってこちらの湧き水APIを叩いてみました。

開発環境

  • OS Windows 10(NVIDIA GTX 1650Ti,16GB RAM, i5-10300H CPU)
  • Visual Studio Code 1.73.1
  • Python 3.9

実際にコード書いていきます

初めにcurlコマンドでAPIを叩いてみる

Windowsのコマンドプロンプトだと日本語入っているとうまくできないので
一旦「https://livlog.xyz/webapi/springWater?q=愛知県」
をブラウザでURLを入力し、また再度URLをコピーします。

curl -s "https://livlog.xyz/webapi/springWater?q=%E6%84%9B%E7%9F%A5%E7%9C%8C"

コマンドプロンプトに戻ってcurlを使うと
スクリーンショット (3).png
愛知県の湧き水スポットがズラッと表示されました^^

今度はPythonで!

まずは今回使っていくrequestモジュールをpipインストールします。

pip install requests

仕様書を確認

image.png

今回はGETメソッドを使っていくので、

import requests

url = "https://livlog.xyz/webapi/springWater?q=愛知県"
response = requests.get(url)
print(response.text)

Pythonのrequestsをインポートし、引数として、WEBサイトのURLを指定します。

仕様書を確認するとクエリパラメータqには実際に調べたい都道府県名を入力すればよいので、今回は『愛知県』を入れてみました。

最後にgetメソッドを使い、テキストを表示させれば完了!
water-api.png
たくさんの湧き水スポットが出てきました(汗

ここから抽出するには

このままだと正直見にくいので

print(response.json()["result"][0])

resultの1番初めに出てくる湧き水スポットを取り出すと
water-api2.png
これでめちゃめちゃ見やすくなりました!

JSONとは?

APIで標準的に使われているデータ形式のこと
JavaScriptの書き方を元にしているようです。

まとめ

  • VSコードでAPIを利用してみた。(curlを使えばコマンドプロンプトでもできる)
  • JSON形式はAPIでよく使われるデータ形式!

その他

formatを用いた書き方

import requests
pref = "愛知県"
url2 = f"https://livlog.xyz/webapi/springWater?q={pref}"
responce = requests.get(url2)
print(responce.text)

コマンドライン引数を用いた書き方

wakimizu.py
import requests
import sys

pref = sys.argv[1]
url3 = f"https://livlog.xyz/webapi/springWate?q={pref}"
responce = requests.get(url3)
print(responce.text)

実行方法
コマンドプロンプトにて

python wakimizu.py 愛知県

とすれば同じ結果がでてきます。

Pythonで書かなくてもAPIは簡単に使えます

image.png

VSCodeでREST Clientという拡張機能をインストールしたら、

  1. 利用したいAPIのURLを貼り付ける
  2. 「ファイル名.http」で保存
  3. 「Send Request」をクリック

image.png

で右のように返ってきました。しかもさっきより見やすい。

22
15
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
22
15