環境
- 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 著作権フリー 異論反論歓迎 感想募集者受付中"
}
]
参考