Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

pythonでDMM(FANZA)のAPIにリクエストを送信する方法

More than 1 year has passed since last update.

もくじ

  • きっかけ
  • ソースコード

きっかけ

アフィリエイトなんかではよく利用されているDMMのAPI。
これにpythonでリクエストを送信して検索結果を取得してみたいと思ってコードを書いてみたので、メモしておきます。
(実際に書いて利用したのは結構前です)

ソースコード

同人作品情報を取得するサンプルです。

# dayUtil
import datetime
# htmlUtils
import requests
from urllib.request import urlopen
# JsonParser
import json

# リクエスト電文で使用するドメイン
DOMAIN = "https://api.dmm.com/affiliate/v3/ItemList"
# リクエスト電文で使用するAPI_ID
API_ID = "xxxxx"
# リクエスト電文で使用するAFFILIATE_ID
AFFILIATE_ID = "xxxxx"
# リクエスト電文で使用するSORT_VALUE
SORT_VALUE = "date"
# リクエスト電文で使用するOUTPUT
OUTPUT = "json"
# リクエスト電文で使用するSITE
SITE = "DMM.R18"

# ==================================================
# html生成
# ==================================================
def create():
    jsonObject = requestToApi(10, 30, "キーワード", "digital_doujin", "doujin")

# ==================================================
# APIへリクエスト送信
# ==================================================
def requestToApi(hitsNum, dateFromNum, keyword, floor, service):
    response = requests.get(createRequest(hitsNum, dateFromNum, keyword, floor, service))
    jsonObject = response.json()

    return jsonObject

# ==================================================
# リクエスト生成
# ==================================================
def createRequest(hitsNum, dateFromNum, keyword, floor, service):
    txt = DOMAIN + "?" \
    + createQueryParam("api_id", API_ID) + "&" \
    + createQueryParam("affiliate_id", AFFILIATE_ID) + "&" \
    + "hits=" + str(hitsNum) + "&" \
    + createQueryParam("sort", SORT_VALUE) + "&" \
    + createQueryParam("keyword", keyword) + "&" \
    + createDateTxt(dateFromNum) + "&" \
    + createQueryParam("output", OUTPUT) + "&" \
    + createQueryParam("site", SITE) + "&" \
    + createQueryParam("floor", floor) + "&" \
    + createQueryParam("service", service)

    return txt

# ==================================================
# クエリパラメータを生成
# ==================================================
def createQueryParam(key, value):
    return key + "=" + value
chuntaweb
面白い、役に立ちそうと感じたらプログラミングしてみて、その時のノウハウを記事にしています。
http://blog.livedoor.jp/kaiiryuta-programming/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away