LoginSignup
0
1

More than 1 year has passed since last update.

【なろう小説API】条件を指定してなろう小説の作品データを出力

Last updated at Posted at 2021-12-15

環境

  • Microsoft Windows 10.0.22000.318(21H2)
  • Python 3.8.12.final.0

目的

小説家になろうで公開されている作品の中で著作権フリーのものを探す。具体的には、'keyword': '著作権フリー' となるものを抽出する。

「なろう小説API」とは

なろう小説APIでは小説家になろうに掲載されている小説情報を取得できます。(なろうデベロッパーより引用)

なろうAPIの仕様についてはなろうデベロッパーに書かれている。

ソースコード

パラメータについてはこちら
なろう小説APIのURLで使用できるパラメータについて、[公式](https://dev.syosetu.com/man/api/ "なろう小説API")より一部抜粋して紹介する。

出力GETパラメータ

出力に関するパラメータ

パラメータ 説明
out string 出力形式は yaml, json, php。未指定時は YAML。
of string 出力する項目を個別に指定できる。未指定時は全項目出力される。 転送量上限を減らすために推奨。
lim int (1~500) 最大出力数を指定できる。未指定時は20件。
order string 出力順序を指定できる。未指定時は新着更新順。

条件抽出GETパラメータ

条件を指定して出力を絞り込むパラメータ

パラメータ 説明
word string 単語を指定できる。
notword string 含みたくない単語を指定できる。
ncode string Nコードで抽出。
biggenre int, string 大ジャンルを指定できる。
genre int, string ジャンルを指定できる。
userid int, string ユーザIDで抽出。
minlen int 抽出する小説の最小文字数を指定できる。
maxlen int 抽出する小説の最大文字数を指定できる。
length int, string 抽出する小説の文字数を指定できる。
type string 小説タイプを指定できる。
lastup string 最終掲載日(general_lastup)で抽出。

抽出対象の範囲

パラメータ 説明
title int 1の場合はタイトルをwordとnotwordの抽出対象にする。
ex int 1の場合はあらすじをwordとnotwordの抽出対象にする。
keyword int 1の場合はキーワードをwordとnotwordの抽出対象にする。
wname int 1の場合は作者名をwordとnotwordの抽出対象にする。

ofパラメータの項目

出力GETパラメータ of で指定できる項目

項目 内容 説明
t title 小説名
n ncode Nコード
u userid 作者のユーザID(数値)
w writer 作者名
s story 小説のあらすじ
bg biggenre 大ジャンル
g genre ジャンル
k keyword キーワード
l length 小説文字数
.py
import requests
import json

url = "http://api.syosetu.com/novelapi/api/"

# 小説名、作者名、Nコード、キーワードを出力
# キーワードに「著作権フリー」を含むものを出力
# json形式で出力
payload = {'of': 't-w-n-k', 'word': '著作権フリー', 'keyword': '1', 'out':'json'}

response = requests.get(url, payload).json()

# 整形して表示
print(json.dumps(response, indent=2, ensure_ascii=False))

最大出力数を指定していないため、20件しか出力されていない。すべて表示する場合は、パラメータに 'lim': '32' を追加する。

出力例
[
  {
    "allcount": 32
  },
  {
    "title": "アルメシア 〜神に選ばれし転移者たちの英雄譚〜",
    "ncode": "N8849FZ",
    "writer": "K.R.",
    "keyword": "R15 残酷な描写あり 異世界転移 オリジナル戦記 三人称視点 恋愛要素あるかも 不定期更新 主人公は四人 徐々に 成長 休載多め 群像劇 無双・ハーレムなし 冒険者 スキル 魔王 自作挿絵 著作権フリー 二次創作OK"
  },
  {
    "title": "異世界系なろう作家御用達!~魔物を調べるのがめんどい人向けの魔物辞典~",
    "ncode": "N9849FC",
    "writer": "加島 龍/きすみきりん",
    "keyword": "魔物辞典 著作権フリー 剣と魔法 ファンタジー 記角麒麟 魔物 種類 スライム ゴブリン ラノベ なろう作家御用達 伝説の生物 魔物の一覧 きりぺでぃあ"
  },
  {
    "title": "隠居老人の閑言~作者さん、ありがとう~",
    "ncode": "N0308FT",
    "writer": "隠居老人",
    "keyword": "著作権フリー"
  },
  {
    "title": "こねこのまち",
    "ncode": "N5534GD",
    "writer": "おぎのおさむ・りょう共著",
    "keyword": "仔猫 子猫 著作権フリー 絵本 絵本原作 童話"
  },
  {
    "title": ">死刑は人殺しだから、それを存続させようというのは人でなしだと思う",
    "ncode": "N1228GD",
    "writer": "隠居老人",
    "keyword": "著作権フリー 死刑"
  },
  {
    "title": "異世界で今日も逃げてます!",
    "ncode": "N0306FZ",
    "writer": "(^‿^)> イヤー、アハハハ",
    "keyword": "異世界転移 冒険 著作権フリー ギャグ 未来 魔法"
  },
  {
    "title": "隠居老人の譫言~こんな感想書いて作者さん、すみません~",
    "ncode": "N2153EP",
    "writer": "隠居老人",
    "keyword": "著作権フリー 議論歓迎 感想募集者受付中"
  },
  {
    "title": "隠居老人の建言~作者さん、騙されてませんか?~",
    "ncode": "N0845FT",
    "writer": "隠居老人",
    "keyword": "著作権フリー"
  },
  {
    "title": "殺意の居場所(続きを書くのはあなただ!!)",
    "ncode": "N2172FT",
    "writer": "35年寝太郎",
    "keyword": "ミステリー サスペンス 探偵小説 著作権フリー 続き求ム"
  },
  {
    "title": "魔法魔術リテラシー",
    "ncode": "N3570ES",
    "writer": "加島 龍/きすみきりん",
    "keyword": "魔法 魔術 魔法魔術リテラシー 四大元素 魔力 妖術 魔女術 哲学 思想 主義 宗教 教科書 厨二病向け 著作権フリ ー ノンフィクション"
  },
  {
    "title": "元号や天皇制は必要なのか? 「元号廃止論」と「近代日本=昭和」と「現代=令和」という【公私混同】の【権威】が創る元号",
    "ncode": "N5722FK",
    "writer": "隠居老人",
    "keyword": "史実 著作権フリー"
  },
  {
    "title": "キタマジ!?~帰宅部LV99が異世界から帰宅するってマジ!?~",
    "ncode": "N5257EH",
    "writer": "たかしクランベリー/TOKISDEO公式",
    "keyword": "R15 残酷な描写あり 異世界転移 冒険 VRMMO TS ギャグ シリアス ほのぼの 四部構成採用 たかしクランベリー キ タマジ第一部 帰宅部lv99 著作権フリー 後書き茶番 一話約1000文字 パロディ ラグナガルド"
  },
  {
    "title": "異世界系なろう作家御用達!~道具を調べるのがめんどい人向けのアイテム辞典~",
    "ncode": "N7423FF",
    "writer": "加島 龍/きすみきりん",
    "keyword": "アイテム辞典 道具辞典 きりぺでぃあ ポーション 錬金術 魔法 剣と魔法の世界 著作権フリー 資料"
  },
  {
    "title": "異世界系なろう作家御用達!~武器を調べるのがめんどい人向けの武器辞典~",
    "ncode": "N6923FF",
    "writer": "加島 龍/きすみきりん",
    "keyword": "きりぺでぃあ 武器辞典 剣と魔法の世界 異世界 ラノベ 資料 著作権フリー"
  },
  {
    "title": "ウツケの園~「休」と書いて楽園作り〜",
    "ncode": "N2766FF",
    "writer": "アッキ@瓶の蓋。",
    "keyword": "異能力バトル オリジナル バカ 異能力 文字 連載する? 著作権フリー"
  },
  {
    "title": "光のダンジョン繁盛記~ここはダンジョンです! 育て屋ではありません!~",
    "ncode": "N8762FE",
    "writer": "アッキ@瓶の蓋。",
    "keyword": "オリジナル戦記 短編 著作権フリー ダンジョン"
  },
  {
    "title": "異世界掃除騎ダンジャリオン~排除力の変わらない、ただ1人の救世主~",
    "ncode": "N5308FE",
    "writer": "アッキ@瓶の蓋。",
    "keyword": "オリジナル戦記 ヒーロー 異世界 召喚 モノだしすぎ 片付け 短編版 著作権フリー"
  },
  {
    "title": "剣に嫌われていた騎士は、魔王と共に成り上がる",
    "ncode": "N7475FD",
    "writer": "アッキ@瓶の蓋。",
    "keyword": "オリジナル戦記 異能力バトル 魔王 狐耳 魔剣 剣士 落ちこぼれ 成り上がり 著作権フリー"
  },
  {
    "title": "何を食べた?",
    "ncode": "N2905EZ",
    "writer": "Unknown_staff",
    "keyword": "R15 年の差 ミステリー サスペンス 下ネタ シリアス 現代 事件 著作権フリー"
  },
  {
    "title": "隠居老人の戯言~作者さん、すみません~",
    "ncode": "N4900ED",
    "writer": "隠居老人",
    "keyword": "R15 著作権フリー 異論反論歓迎 感想募集者受付中"
  }
]

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1