npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

scrape-narou

v0.1.3

Published

a japanese novel sns syosetu.com unofficial scrape library

Downloads

9

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

  • 著者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