【ゆるプロ!番外編】YahooのショッピングAPIで商品検索する
ゆるいプログラミング講座、略して「ゆるプロ!」
これは気軽に気楽に試せるゆるーいプログラミング学習コンテンツである。今回のお題は「YahooのショッピングAPIで商品検索する」
一言)
資産リストを作ろうと思い、GTINコードが分かれば商品名や金額を作成できないかと思い立ち、Pythonで商品名や金額の取得を試みた話
前提)
Yahoo! JAPAN ID
Yahoo!デベロッパーネットワークのClient ID
Pythonがインストール済みであること
Windows
chatgpt3.5
登録方法についてはよく調べること
例)YahooのショッピングAPIで商品検索する
YahooのショッピングAPIを使用して商品検索を行う。jsonやxmlをwebから取得することは初めてで、chatgptにコードの書き方や意味などを教わった。下手にGoogle検索するより早いかもしれない。なお、コードは実行できてはいるが、公式のリソースから意味を全て把握して検証しているわけではないので、何か整合性が取れていない部分はあるかもしれない
import requests
import json
url = "https://shopping.yahooapis.jp/ShoppingWebService/V3/itemSearch"
app_id = "" # 取得したaap_id
GTIN = "9784845633852"
# パラメータを辞書で指定
params = {
'appid': app_id,
'jan_code':GTIN,
}
def get_json_data():
try:
# HTTP GETリクエストを送信
response = requests.get(url, params=params)
# ステータスコードが200(成功)の場合
if response.status_code == 200:
# JSONデータを取得
json_data = response.json()
# 取得したJSONデータを整形して表示
print("JSONデータ:")
print(json.dumps(json_data, indent=2, ensure_ascii=False))
else:
# エラーが発生した場合はステータスコードを表示
print(f"エラー: ステータスコード {response.status_code}")
except Exception as e:
# 例外が発生した場合はエラーメッセージを表示
print(f"エラー: {e}")
if __name__ == "__main__":
# 関数を呼び出してJSONデータを取得して表示
get_json_data()
結果)
ざっくり、欲しい情報は得られていそう
JSONデータ:
{
"totalResultsAvailable": 24,
"totalResultsReturned": 1,
"firstResultsPosition": 1,
"request": {
"query": ""
},
"hits": [
{
"index": 1,
"name": "ギターのためのコード理論体系",
"description": "関連words:リットーミュージック/▼コンテンツ/<基礎編>/第一章 指板の仕組み/1. 弦楽器の仕組み/2. フレットボードと鍵盤の対応/3. フレットボードと五線譜の対応/4. フレットボード上の音程/5. 同一ポジションにおける音程の拡張/ 第二章 コードの仕組み/1.コードシンボル表記によるギターの伴奏譜/2.コードの定義/3. メジャーコード/4.マイナーコード/5.その 他の三和音のオープンコード/6.セブンスコード/7.その他の四和音/8.バレーコード/第三章 音階と調性の仕組み/1.メジャーキーのコード進行/2.移調/3.マイナーキーのコード進行/4.テンションコード/5.ドミナントコードのテンション/第四章 ロックギター奏法の仕組み/1.パワーコード/2.ペンタトニックスケール/3.ブルース進行/<応用編>/第五章 ガイドトーンコンピング/1.ルート+ガイドト ーン/2.ルートと各テンションの位置関係/3.ルート+ガイドトーン+テンション/4.アンサンブルでの演奏への応用/5.増五度のガイドトーン/第六章 ドロップ2ヴォイシング/1.ドロップ2ヴォイシングの作り方/2.コードソロの実践/3. 非ダイアトニックコードのドロップ2ヴォイシング/他",
"headLine": "",
"url": "https://store.shopping.yahoo.co.jp/gakufunets/f0182374.html",
"inStock": true,
"code": "gakufunets_f0182374",
"condition": "new",
"imageId": "gakufunets_f0182374",
"image": {
"small": "https://item-shopping.c.yimg.jp/i/c/gakufunets_f0182374",
"medium": "https://item-shopping.c.yimg.jp/i/g/gakufunets_f0182374"
},
"review": {
"count": 1,
"url": "https://shopping.yahoo.co.jp/review/item/list?store_id=gakufunets&page_key=f0182374",
"rate": 0
},
"affiliateRate": 1,
"price": 3080,
"premiumPrice": 3080,
"premiumPriceStatus": false,
"premiumDiscountRate": null,
"premiumDiscountType": null,
"priceLabel": {
"taxable": true,
"defaultPrice": 3080,
"discountedPrice": null,
"fixedPrice": null,
"premiumPrice": null,
"periodStart": null,
"periodEnd": null
},
"point": {
"amount": 0,
"times": 0,
"bonusAmount": 140,
"bonusTimes": 5,
"premiumAmount": 0,
"premiumTimes": 0,
"premiumBonusAmount": 140,
"premiumBonusTimes": 5
},
"shipping": {
"code": 2,
"name": "送料無料"
},
"genreCategory": {
"id": 11477,
"name": "音楽一般の本",
"depth": 4
},
"parentGenreCategories": [
{
"id": 10002,
"depth": 1,
"name": "本、雑誌、コミック"
},
{
"id": 11430,
"depth": 2,
"name": "楽譜、音楽書"
},
{
"id": 11468,
"depth": 3,
"name": "音楽理論、音楽評論の本"
}
],
"brand": {
"id": null,
"name": ""
},
"parentBrands": [],
"janCode": "9784845633852",
"payment": "16384 16 4096 1 4",
"releaseDate": null,
"seller": {
"sellerId": "gakufunets",
"name": "楽譜ネッツ",
"url": "https://store.shopping.yahoo.co.jp/gakufunets/",
"isBestSeller": false,
"review": {
"rate": 4.74,
"count": 5622
},
"imageId": "gakufunets_1"
},
"delivery": {
"deadLine": null,
"day": null,
"area": ""
}
}
]
}
おわり!