Python スクレイピング | YahooShoppingAPIのレスポンスから商品情報抽出【前編】

Shopping

参考ページ

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)

コメント

タイトルとURLをコピーしました