「小説家になろう」の小説を軽量なインターフェースで読むためのWebアプリケーションです。3DSなどの低機能ブラウザでも快適に利用できるよう設計されています。
A lightweight web application for reading novels from "Shōsetsuka ni Narō" (小説家になろう) with a simple interface optimized for low-powered browsers like the Nintendo 3DS.
- 📚 小説検索: 作品名や作者名で小説を検索
- 📖 目次表示: 章立てとエピソード一覧を見やすく表示
- 📱 軽量設計: 3DSなどの低機能ブラウザに最適化
- 🔤 ルビ対応: ふりがなを括弧表記に変換して表示
- 🎯 シンプルUI: 読書に集中できるミニマルなデザイン
- 🚀 高速ナビゲーション: 前の話・次の話への素早い移動
- Backend: Python 3.x + Flask
- Web Scraping: requests + BeautifulSoup4
- Frontend: HTML + CSS (埋め込みテンプレート)
- Production Server: Gunicorn
- Python 3.7以上
- インターネット接続
- リポジトリをクローン
git clone https://github.com/raayucorp/narou-reader.git
cd narou-reader- 依存関係をインストール
pip install -r requirements.txt- アプリケーションを起動
開発環境の場合:
python app.pyアプリケーションは http://localhost:8000 で起動します。
本番環境の場合:
gunicorn -w 4 -b 0.0.0.0:8000 app:app- トップページで作品名や作者名を入力して検索
- 検索結果から読みたい小説を選択
- 小説の詳細ページで章構成とエピソード一覧を確認
- あらすじも表示されます
- エピソードをクリックして本文を表示
- ページ下部のナビゲーションで前後の話に移動
/ # トップページ(検索)
/search?q={検索語}&page={ページ} # 検索結果
/novel/{ncode} # 目次ページ
/novel/{ncode}/{chapter} # 本文表示
GET /search?q={query}&page={page_number}
GET /novel/{ncode}?p={page_number}
GET /novel/{ncode}/{chapter}
BASE_URL: 小説家になろうのベースURLUSER_AGENT: スクレイピング時のUser-AgentHEADERS: HTTPリクエストヘッダー
CSSスタイルは BASE_TEMPLATE 内で定義されており、必要に応じて外観をカスタマイズできます。
- 個人利用の範囲でのみご利用ください
- 商用利用は禁止です
- サーバーへの負荷軽減のため、リクエスト間に1秒の待機時間を設けています
- 「小説家になろう」の利用規約を遵守してください
- 作者および「小説家になろう」の権利を尊重してください
- 表示される小説の内容は各作者に著作権があります
- 本アプリケーションのソースコードの著作権は開発者にあります
# 開発用サーバーを起動(デバッグモード)
python app.py- このリポジトリをフォーク
- 機能ブランチを作成 (
git checkout -b feature/amazing-feature) - 変更をコミット (
git commit -m 'Add amazing feature') - ブランチにプッシュ (
git push origin feature/amazing-feature) - プルリクエストを作成
- PythonコードはPEP 8に従ってください
- 新機能には適切なコメントを追加してください
- サーバー負荷を考慮した実装を心がけてください
Q: 「検索結果の取得に失敗しました」と表示される A: インターネット接続を確認し、しばらく時間をおいてから再試行してください。
Q: 本文が正しく表示されない A: 「小説家になろう」のサイト構造が変更された可能性があります。最新版への更新を確認してください。
Q: 3DSで表示が崩れる A: CSSは3DS向けに最適化されていますが、一部の表示に制限がある場合があります。
このプロジェクトはMITライセンス相当の条件で公開されています。詳細は開発者にお問い合わせください。
- v1.0.0: 初期リリース
- 小説検索機能
- 目次表示機能
- 本文読み込み機能
- 3DS対応軽量デザイン
開発・メンテナンス: raayucorp
- 小説家になろう - 対象サイト
- Flask Documentation - 使用フレームワーク
このプロジェクトは個人的な学習・利用目的で作成されており、「小説家になろう」の公式プロジェクトではありません。