おまけ なろう小説API仕様
基本的になろうのWebAPIはアドレス部とリクエスト部に分かれてます。アドレス部は固定で、リクエスト部を変えて知りたい情報を取得します。ランキングAPIの場合は日付とランキングの種類ですね。
・なろう小説API仕様
アドレス部:"https://api.syosetu.com/novelapi/api/?"
リクエスト部で指定可能なパラメータは大量にあるので以下にまとめます。(詳細は技術マニュアル)基本的に詳細検索のパラメータと同じです。
gzip:圧縮用(省略可)
out:出力形式(省略可)
lim:最大出力数(1~500 省略した場合は20)
st:表示開始位置の指定(1~2000 省略した場合は1)
※1リクエストで500件以上の検索結果があった場合はこれを変えて取得する。
※小説家になろうの検索システムと同じで2000件が同じ検索条件では限界。
of:出力する項目(省略した場合は全項目出力)
order:出力順序(省略した場合は新着順)
word:検索キーワードを指定(省略可 文字コードはUTF-8)
notword:除外キーワードを指定(省略可 文字コードはUTF-8)
title、ex、keyword、wname(キーワードの抽出対象の範囲 タイトル、あらすじ、キーワード、作者名 指定しない場合はすべて)
biggenre:大ジャンル指定(省略可)
notbiggenre:除外大ジャンル指定(省略可)
genre:ジャンル指定(省略可)
notgenre:除外ジャンル指定(省略可)
userid:ユーザID指定(省略可)
isr15、isbl、isgl、iszankoku、istensei、istenni、istt:(登録必須キーワード指定 省略可)
notr15、notbl、notgl、notzankoku、nottensei、nottenni、nottt:(登録必須キーワード除外指定 省略可)
minlen:最小文字数指定(省略可)
maxlen:最大文字数指定(省略可)
length:文字数指定(minlen, maxlenとの併用は不可 省略可)
kaiwaritu:会話率指定(省略可)
sasie:挿絵数指定(省略可)
mintime:最低読了時間指定(省略可)
maxtime:最大読了時間指定(省略可)
time:読了時間を指定(mintime, maxtimeとの併用は不可 省略可)
ncode:Nコード指定(省略可)
type:小説タイプ指定(短編、連載中、完結済連載小説、すべての連載小説、短編と完結済連載小説 省略可)
buntai:文体指定(省略可)
stop:連載停止中作品指定(省略可)
ispickup:ピックアップ条件の指定(省略可)
lastup:最終掲載日指定(省略可)
opt :オプション項目の指定(省略した場合はなし)
リクエストフォーマットは『of=t-n-s&lim=100&order=favnovelcnt&biggenre=2&minlen=10000』のようにパラメーターごとに&でつなげ、同じパラメータで複数の条件を指定できる場合は-でつなげます。
上の場合、出力をタイトル、Nコード、あらすじにして、出力結果の最大を100件、並べ替えはブックマーク数の多い順。抽出条件は大ジャンルがファンタジーで最小文字数が10000字の作品となる。
アドレスバーに打ち込むと、『https://api.syosetu.com/novelapi/api/?of=t-n-s&lim=100&order=favnovelcnt&biggenre=2&minlen=10000』こんな感じに表示されます。
こんな感じに初めにallcount:で該当小説の数が、その下にofパラメータで指定した小説情報が表示されます。要するに詳細検索で必要なパラメータだけ表示させた感じですね。余計な情報は表示されません。
でofパラメータですが、以下のパラメータが指定できます。
t:小説名
n:Nコード
u:作者のユーザID
w:作者名
s:小説のあらすじ
bg:大ジャンル
g:ジャンル
k:キーワード
gf:初回掲載日
gl:最終掲載日
nt:連載、短編フラグ
e:完結済みフラグ
ga:全掲載部分数
l:小説文字数
ti:読了時間
i:長期連載停止中フラグ
ir:R15フラグ
ibl:ボーイズラブフラグ
igl:ガールズラブフラグ
izk:残酷な描写ありフラグ
its:異世界転生フラグ
iti:異世界転移フラグ
p:投稿媒体
gp:総合得点
f:ブックマーク数
r:レビュー数
a:評価点
ah:評価者数
sa:挿絵の数
ka:会話率
nu:小説の更新日時
ua:最終更新日時
またオプションでweeklyを指定すると週間ユニークユーザ数も返ってきます。ちなみに週間ユニークユーザ数は前週の日曜日から土曜日分のユニークの合計です。毎週火曜日早朝に更新されます。
こればっかりは使って慣れる必要があるので、いくつかコピペ用のサンプルを用意しておきます。実際に試してみてください。
1. [https://api.syosetu.com/novelapi/api/?of=r-f-a-l&ncode=N5084EJ]
指定したNコードのレビュー数、ブックマーク数、評価点、小説文字数を取得する。(知りたい小説のNコードにしてください)
2. [https://api.syosetu.com/novelapi/api/?of=t-n-gp-gf&lim=100&order=hyoka&userid=1090932]
指定した作者の作品のタイトル、Nコード、総合得点、初回掲載日を取得する。並べ替えは評価の高い順、最大100件の表示。(1090932は夕月のID。知りたい作者のIDにしてください)
3. [https://api.syosetu.com/novelapi/api/?of=t-l-ka&lim=100&order=weekly&word=魔法&biggenre=2&kaiwaritu=20-50&opt=weekly]
キーワード”魔法”でジャンルが”ファンタジー”で会話率が20%以上50%以下の作品のタイトル、小説文字数、会話率、週間ユニークユーザー数を取得する。並べ替えは週間ユニークユーザの多い順の高い順、最大100件の表示。
※本来キーワードはUTF-8で書かないといけないけど、ブラウザで変換してくれるのでこのまま。プログラミング時にはURLエンコードが必要。
4. [https://api.syosetu.com/novelapi/api/?lim=100]
新着順で100件の小説を表示する。(ofパラメータ指定なし)
というわけで、こんな感じで使うことができます。『なろう小説API』は少しややこしいですが、あらかじめよく調べるキーワードや条件をテキストなんかにしておいてそれをコピペするといいでしょう。
とあるスコッパーの備忘録より抜粋。
なお、デベロッパーの方にはかいてないですが、総合ポイントの範囲指定することもできます。
まぁ、公式には説明されてないのでここでは割愛します。