0.1.3 • Published 4 years ago

scrape-narou v0.1.3

Weekly downloads
4
License
MIT
Repository
github
Last release
4 years ago

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
  • 著者idauthorId
  • 小説タイトルtitle

    を持ちます。長編の場合、これに加えて

  • 小説章名chapter

  • 小説話名subtitle
  • 小説本文content
  • 本文はしがきheader
  • 本文あとがきfooter
  • 広告(著者が設定した)ad
  • 次ページ番号next
  • 前ページ番号prev

    を持ちます。短編の場合、上記の代わりに

  • 短編シリーズ名series

  • 短編シリーズidseriesId

    を持ちます。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禁APIxidに変わる点に注意して下さい(一般プロフィールで使われるidと別扱いです)。

  • scrapeNarou.toc(ncode) -> Promise<result>

    指定のncodeの目次htmlをダウンロードして解析し、オブジェクトに変換します。短編小説に対して使用するとエラーになります。内容として

    • リクエストに使用したuri
    • ページ総数count
    • 著者名author
    • 著者idauthorId
    • 小説タイトル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禁APIxidに変わる点に注意して下さい(一般プロフィールで使われるidと別扱いです)。

謝辞

このアプリケーションは非公式のもので、株式会社ヒナプロジェクトが提供しているものではありません。

関連するプロジェクト

開発環境

下記がグローバルインストールされていることが前提です。

  • 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

License

MIT

0.1.3

4 years ago

0.1.2

5 years ago

0.1.1

8 years ago

0.1.0

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago

0.0.0

8 years ago