参考ページ
https://developer.yahoo.co.jp/webapi/shopping/shopping/v3/itemsearch.html
解説動画
Python スクレイピング | YahooShoppingAPIのレスポンスからデータ抽出【前編】
【Note】もくじ00:00 - 前回までのあらすじ00:50 - 検索結果03:51 - request07:16 - hitsコード詳細はこちらから↓ブログ↓===============...
スクリプト
import json import pprint import configparser from pathlib import Path import requests BASE_DIR = Path(__file__).resolve().parent.parent config_ini = configparser.ConfigParser() config_ini.read(BASE_DIR / "setting" / "config.ini", encoding='utf-8') APP_ID = config_ini['YAHOO_SHOPPING_SETTING']['ID'] #ID yahooShoppingURL = "https://shopping.yahooapis.jp/ShoppingWebService/V3/itemSearch" #API REQUEST # パラメーター params = {"appid":APP_ID, "query":"NC-A57-K", # UTF-8エンコードされた検索キーワード # "jan_code": "4549980191279", # JAN_CODE パラメータ "image_size":300, #画像サイズ # "price_from": 10000, #下限 10000円 "price_to":20000, #上限 20000円 "in_stock":True, #在庫なし "shipping":"free", # free - 送料無料, conditional_free - 条件付き送料無料 "payment":"1", # payment - credit card "delivery_area":"13", # delivery_area - きょうつく、あすつく , 13 - 東京 "sort" : "-review_count", # -review_count - 商品レビュー数順 "condition":"used" } def search(): res = requests.get(yahooShoppingURL,params).json() return res # レスポンス yahoo_shopping_API_res = search() # pprint.pprint(yahoo_shopping_API_res) # 総ヒット件数 - integer totalResultsAvailable = yahoo_shopping_API_res["totalResultsAvailable"] print("[INFO] totalResultsAvailable", totalResultsAvailable) # 返却された商品件数 totalResultsReturned = yahoo_shopping_API_res["totalResultsReturned"] print("[INFO] totalResultsReturned", totalResultsReturned) # 検索クエリ request/query query = yahoo_shopping_API_res["request"]["query"] print("[INFO] query", query) # ループ for index in range(totalResultsAvailable): # 商品名 hits/name 、商品説明 hits/description、在庫の有無 hits/inStock name = yahoo_shopping_API_res["hits"][index]["name"] description = yahoo_shopping_API_res["hits"][index]["description"] inStock = yahoo_shopping_API_res["hits"][index]["inStock"] print("[INFO] name", name) print("[INFO] description", description) if inStock is True: print("[INFO] inStock", "在庫あり") else: print("[ERROR] 在庫なし") # 商品URL hits/url, 商品コード hits/code, 商品の状態 hits/condition , 税抜きの価格 hits/taxExcludePrice url = yahoo_shopping_API_res["hits"][index]["url"] code = yahoo_shopping_API_res["hits"][index]["code"] condition = yahoo_shopping_API_res["hits"][index]["condition"] print("[INFO] url", url) print("[INFO] code", code) print("[INFO] condition", condition)
コメント