DMM Web APIで商品情報を取得するPythonコードを作成
DMM Web APIで商品情報を取得するを知りたかったのですが、私はPythonをほとんど使ったことが無かく、Web APIというのも使ったことがなかったので、試しにChatGPTにお願いしてPythonのサンプルコードを作ってもらってみました。
なんと、すごいですね。ほとんどそのまま使って、情報を取得できました。
恐るべしChatGPT!!
ChatGPTへの質問と回答
依頼した内容と得た回答は以下です。
質問
DMMのWeb APIを使って、情報を取得するPythonのコードのサンプルを作ってもらうことはできますか。
ChatGPTの回答
DMMのWeb APIを利用して情報を取得するためのPythonのコードサンプルを作成することは可能です。DMM APIを利用するには、まずDMMの開発者アカウントを作成し、APIキーを取得する必要があります。以下は、DMM APIを使って特定のカテゴリの商品情報を取得する基本的なPythonコードの例です。
このコード例では、requests
ライブラリを使用してAPIにリクエストを送り、結果をJSON形式で受け取ります。まだrequests
ライブラリをインストールしていない場合は、pip install requests
を実行してインストールしてください。
import requests
# DMM APIのエンドポイント
API_ENDPOINT = 'https://api.dmm.com/affiliate/v3/ItemList'
# あなたのAPI IDとアフィリエイトIDをここに設定してください
API_ID = 'your_api_id'
AFFILIATE_ID = 'your_affiliate_id'
# APIリクエストのパラメータを設定
params = {
'api_id': API_ID,
'affiliate_id': AFFILIATE_ID,
'site': 'DMM.com', # 'DMM.com' または 'DMM.co.jp'
'service': 'mono', # 利用したいサービス名
'floor': 'dvd', # 利用したいフロア名
'sort': 'date', # ソート順
'hits': 20, # 取得する商品数
'offset': 1 # 開始位置
}
try:
# APIリクエストを送信
response = requests.get(API_ENDPOINT, params=params)
response.raise_for_status() # HTTPエラーがあれば例外を発生させる
# レスポンスのJSONデータを取得
data = response.json()
# 取得したデータを表示(ここでは商品名と価格を表示)
for item in data['result']['items']:
print(f"商品名: {item['title']}, 価格: {item['iteminfo']['price'][0]['name']}")
except requests.exceptions.RequestException as e:
print(f"リクエスト中にエラーが発生しました: {e}")
このコードはDMM APIを使用して特定のカテゴリの商品情報を取得するためのものです。API_ID
とAFFILIATE_ID
には、DMMの開発者サイトで取得した自分のAPI IDとアフィリエイトIDを設定してください。また、service
やfloor
の値を変更することで、異なる種類の商品や情報を取得できます。
APIの詳細な仕様や利用可能なパラメータ、サービス名やフロア名はDMM APIの公式ドキュメントを参照してください。
修正したコードとその出力
商品情報をログを出力するところとか、指定が少し間違っており、エラーになったため修正しましたが、ほとんどそのまま使えました。
ほんと感心します!
修正版コード
import requests
# DMM APIのエンドポイント
API_ENDPOINT = 'https://api.dmm.com/affiliate/v3/ItemList'
# あなたのAPI IDとアフィリエイトIDをここに設定してください
API_ID = 'your_api_id'
AFFILIATE_ID = 'your_affiliate_id'
# APIリクエストのパラメータを設定
params = {
'api_id': API_ID ,
'affiliate_id': AFFILIATE_ID,
'site': 'DMM.com', # 'DMM.com' または 'DMM.co.jp'
'service': 'ebook', # 利用したいサービス名
'floor': 'comic', # 利用したいフロア名
'sort': 'rank', # ソート順
'hits': 10, # 取得する商品数
'offset': 1, # 開始位置
}
try:
# APIリクエストを送信
response = requests.get(API_ENDPOINT, params=params)
response.raise_for_status() # HTTPエラーがあれば例外を発生させる
# レスポンスのJSONデータを取得
data = response.json()
# 取得したデータを表示(ここでは商品名と価格を表示)
for item in data['result']['items']:
print(f"商品名: {item['title']}, 価格: {item['prices']['price']}")
except requests.exceptions.RequestException as e:
print(f"リクエスト中にエラーが発生しました: {e}")
実行結果
ちゃんと情報を取得できました。
商品名: 片田舎のおっさん、剣聖になる〜ただの田舎の剣術師範だったのに、大成した弟子たちが俺を放ってくれない件〜, 価格: 704
商品名: 異世界迷宮でハーレムを, 価格: 748
商品名: 俺だけレベルアップな件, 価格: 1012
商品名: ダンジョン飯, 価格: 792
商品名: 魔法少女にあこがれて, 価格: 803
商品名: 転生コロシアム 〜最弱スキルで最強の女たちを攻略して奴隷ハーレム作ります〜, 価格: 737
商品名: 葬送のフリーレン, 価格: 528
商品名: ゴールデンカムイ, 価格: 658
商品名: ニセモノの錬金術師, 価格: 748
商品名: 魔都精兵のスレイブ, 価格: 501
DMM APIリファレンス
ちなみに、DMMのweb Apiのリファレンスは以下です。
リンク:https://affiliate.dmm.com/api/v3/itemlist.html
コメント