scrape-narou
v0.1.3
Published
a japanese novel sns syosetu.com unofficial scrape library
Downloads
19
Readme
Scrape narou
「小説家になろう」非公式 NodeJS用 小説本文取得ライブラリ
インストール
npm install scrape-narou --save
API
2016年6月4日現在のHTML構成を解析し、オブジェクトを返します。今後、小説家になろうの本家ページのHTML構成が変更になると、このライブラリは動作しなくなる ことに注意してください。
scrapeNarou(ncode[, page])
->Promise<result>
指定の
ncode
の小説htmlをダウンロードして解析し、オブジェクトに変換します。長編小説の場合page
は必須です。逆に短編小説はpage
が使用できません。内容としてリクエストに使用した
uri
現在のページ番号
page
最終ページ番号
count
著者名
author
著者id
authorId
小説タイトル
title
を持ちます。長編の場合、これに加えて
- 小説章名
chapter
- 小説話名
subtitle
- 小説本文
content
- 本文はしがき
header
- 本文あとがき
footer
- 広告(著者が設定した)
ad
- 次ページ番号
next
- 前ページ番号
prev
を持ちます。短編の場合、上記の代わりに
- 短編シリーズ名
series
- 短編シリーズid
seriesId
を持ちます。content
,header
,footer
,ad
のhtmlは無害化せず、挿絵も削除しません。
import scrapeNarou from 'scrape-narou';
scrapeNarou('n9669bk', 1).then(result => console.log(result));
// {
// uri: 'http://ncode.syosetu.com/n9669bk/1/',
// page: 1,
// count: 286,
// author: '理不尽な孫の手',
// authorId: '288399',
// title: '無職転生 - 異世界行ったら本気だす -',
// chapter: '第1章 幼年期',
// subtitle: 'プロローグ',
// content: '俺は34歳住所不定無職。(中略)トマトみたいに潰れて死んだ。',
// header: '',
// footer: '',
// ad: '',
// next: 2,
// prev: null,
// }
scrapeNarou('n1354ck').then(result => console.log(result));
// {
// uri: 'http://ncode.syosetu.com/n1354ck/',
// author: '結木さんと',
// authorId: '270309',
// series: 'お菓子な世界より',
// seriesId: 's5859c',
// title: 'いやだってお菓子あげたらついてくるっていうからさぁ!!',
// content: '<br>\n 混沌たる群集の中から(中略)ほんとに覚えててくださいね。<br>\n<br>\n<br>\n<br>'
// }
scrapeNarou.r18(ncode[, page])
->Promise<result>
scrapeNarou
と同じですが、ダウンロード先をhttp://novel18.syosetu.com/
に変更します。 また、著者idauthorId
はなろう小説18禁API
のxid
に変わる点に注意して下さい(一般プロフィールで使われるidと別扱いです)。scrapeNarou.toc(ncode)
->Promise<result>
指定の
ncode
の目次htmlをダウンロードして解析し、オブジェクトに変換します。短編小説に対して使用するとエラーになります。内容として- リクエストに使用した
uri
- ページ総数
count
- 著者名
author
- 著者id
authorId
- 小説タイトル
title
- 小説あらすじ
content
- 章
chapters
または、章なしepisodes
を持ちます。
chapters
/episodes
は複数のepisode
を持ち、このepisode
は- ページ番号
page
- 小説話名
subtitle
- 作成日時
created
- 更新日時
updated
を持ちます。
import scrapeNarou from 'scrape-narou'; scrapeNarou.toc('n9669bk').then(result => console.log(result)); // { // "uri": "http://ncode.syosetu.com/n9669bk/", // "author": "理不尽な孫の手", // "authorId": "288399", // "title": "無職転生 - 異世界行ったら本気だす -", // "content": "34歳職歴無し住所不定無職童貞のニートは、ある日家を追い出され、…", // "count": 286, // "chapters": [ // { // "title": "第1章 幼年期", // "episodes": [ // { // "page": 1, // "subtitle": "プロローグ", // "created": Date {2012-11-22}, // "updated": Date {2013-11-27} // }, // ... // ] // }, // ... // ], // "episodes": [] // }
- リクエストに使用した
scrapeNarou.tocR18(ncode)
->Promise<result>
scrapeNarou.toc
と同じですが、ダウンロード先をhttp://novel18.syosetu.com/
に変更します。 また、著者idauthorId
はなろう小説18禁API
のxid
に変わる点に注意して下さい(一般プロフィールで使われるidと別扱いです)。
謝辞
このアプリケーションは非公式のもので、株式会社ヒナプロジェクトが提供しているものではありません。
関連するプロジェクト
- naroujs - NodeJS/ブラウザ用 なろう(小説/小説ランキング/殿堂入り/18禁小説)API JavaScriptラッパ
- narou-middleware - Express4用 小説家になろう 非公式ミドルウェア
開発環境
下記がグローバルインストールされていることが前提です。
- NodeJS v5.11.1
- Npm v3.8.6 (or pnpm)
git clone https://github.com/59naga/scrape-narou
cd scrape-narou
npm install
npm test
npm run lint