fiction 中文网-小说网

灵感来源

通过一个爬虫项目自动采集小说数据,通过后端统一提供服务接口,再用一个前端项目做阅读和运营界面,形成一条完整的小说内容链路。

项目简介

本系统是一个完整的 在线小说网站解决方案,由三个彼此解耦又紧密协作的子项目组成:

整体形成:数据采集 → 数据存储 → 服务接口 → 前端展示 的闭环,既能快速搭建自己的小说站点,也可以作为一套学习/演示级的「全栈 + 爬虫」综合项目。


核心亮点


总体架构图

1


开发接口说明

https://docs.apipost.net/docs/2d7a593fb864000?locale=zh-cn

系列开发笔记

fiction中文网前端代码分析 | ad博客

fiction中文网后端代码分析 | ad博客

fiction中文网爬虫代码分析 | ad博客

fiction中文网flutter代码分析 | ad博客 该子项目开发失败 已放弃

各子系统详细说明

1. 前端ad-fiction-front

1.1 技术栈与特点

1.2 页面路由与主要业务

核心路由(来自src/router/index.js):

-/:首页布局Layout,可承载推荐、轮播、各类榜单等模块。
-/detail/:id:小说详情页,展示简介、作者、分类、最新章节等信息。
-/read/:tableName/:fictionId/:id:阅读页,从后端加载指定章节内容。
-/category/:bigclass/:id/:classify?:分类页,支持按大类/小类筛选。
-/rankinglist/:bigclass/:id/:rankinglist:多维度排行榜(点击、收藏等)。
-/bookrank:书架页,管理用户已收藏的小说。
-/search/:name/:id:搜索结果展示。
-/login:登录页,与后端 Sa-Token 对接。
-/info:个人信息与账号设置。
-/comment/:id:评论页,围绕指定小说展开评论。
-/mobile:移动端专用布局。
-/test:测试/调试用页面。

路由守卫中根据 UserAgent 判断是否为移动端,将to.meta.isMobile 设置为true/false,为响应式布局和差异化页面提供依据。

1.3 与后端接口对接


2. 后端fiction

2.1 技术架构

2.2 模块说明

-controller:REST 接口层,对应小说、章节、用户、评论、书架、排行等模块。
-Service:业务服务层,封装所有业务逻辑与事务控制。
-mapper:持久层接口,使用 MyBatis-Plus 与数据库交互。
-entity:实体类,映射 MySQL 表结构。
-common:通用返回结果R、全局异常处理器等。
-config:MyBatisPlusConfig、RedisConfig、ServletConfig、Sa-Token、文件存储配置等。
-filter:Sa-Token 过滤器、安全拦截相关配置。
-utils:工具类(时间、JSON、分页、文件等)。


3. 爬虫fiction_spider

3.1 功能定位

3.2 Scrapy 项目结构

-spiders/qishuwang.py:奇书网主爬虫,实现start_requests /parse /contenturl 三个核心流程。
-items.py:定义FictionItem,包含小说名、作者、封面、简介、章节标题、章节内容等字段。
-pipelines/pipelines.py:负责使用 PyMySQL 将 Item 写入 MySQL。
-pipelines/txt_pipelines.py:负责生成 txt 并调用 WebDAV 上传(视实际实现而定)。
-utils/WebDAVUploader.py:WebDAV 上传工具类。
-settings.py:Scrapy 全局配置(并发、UA、日志级别、MySQL 连接等)。


使用流程

  1. 准备基础环境

    • 安装并启动 MySQL,创建数据库fiction。
    • 安装并启动 Redis。
    • 准备 WebDAV 服务(可以是云盘 WebDAV 或自建服务),记录好地址、用户名、密码。
  2. 运行爬虫初始化数据(推荐)

    • 在fiction_spider/fiction/settings.py 中配置 MySQL 和 WebDAV。

    • 执行: bash cd fiction_spider scrapy crawl qishuwang

    • 按提示输入目标小说目录页 URL,等待采集完成,确认 MySQL 中已有小说及章节数据。

  3. 启动后端fiction

    • 修改fiction/src/main/resources/application.yml: -spring.datasource.druid:MySQL 地址、用户名、密码。
      -spring.redis:Redis 地址、密码。
      -dromara.x-file-storage.webdav:WebDAV 地址、账号、密码等。

    • 启动: bash cd fiction mvn spring-boot:run

    • 使用 Postman 或浏览器调用部分接口,确认后端工作正常。

  4. 启动前端ad-fiction-front

a.d

© 2026 a.d

相册 博客 GitHub