摘要

随着网络文学产业的发展壮大,大量的网络小说不断出现也给其带来大量数据管理的问题。传统的手工管理方式费时费力并且无法处理不断变化的小说信息。为此,我们基于Django开发了一个网络小说的数据处理以及可视化展示平台,在其中利用爬虫抓取网络小说的相关信息,然后使用MySQL数据库进行保存,实现了对用户的管理和对于数据的统计与展示等功能。

系统使用Python编写后端程序,用Django来处理具体工作,在前端以响应式页面使用户可以在不同设备上浏览网站,数据抓取部分用爬虫从指定网址抓取小说相关信息并清洗转换入库,数据分析部分计算出各种指标如作品热度、分类比例、更新情况等制成图展示给管理员查看,用户可以搜索、阅读以及评论小说,管理员可进行相关管理如管理数据、审核内容、发送消息等。

从测试来看,系统可以正常工作,数据采集准确率达到要求,图表展示分析结果良好。本系统给网络文学网站提供了一个良好的数据管理工具,提高工作效率的同时也方便读者阅读。

关键词:网络小说;数据分析;可视化;Django框架

Abstract

The size of the online literature industry keeps growing as new big novel works are emerging, which presents challenges in data management. Conventional manual organizational practices are ineffective and cannot be managed in case of dynamic changes in work-related information. This paper develops and implements a network novel data analysis and visualization system using Django framework. A functional system that includes user reading and data analysis and visualization display is built using the crawler technology to automatically collect novel data and MySQL database storage management.

This system is based on Python language to create back-end services, relies on the Django framework to handle the business logic, and the front-end is based on responsive design to ensure cross-platform functionality. Crawler technology is used by the data collection module to acquire new data about the target site that will be saved into the database after cleaning and conversion. The analysis module does statistical calculations on popularity of work, distribution of types, and frequency of updates and produces graphical representations of the results that serve as a guide to administrators when making decisions. On the user side they offer the novel retrieval, online reading, interactive comments and other services and on the management side they can support data maintenance, content review, notification push and other operations.

The test results indicate that the system is able to operate in stable conditions, the data collection accuracy has achieved the desired standard, and the graphical chart has clearly displayed the analysis outcome. On-line literature services offer data handling software to users, help boost operational effectiveness, and make it easy to access and read information on the website.

Key words: Online novels; Data analysis; Visualization; Django framework; Crawler technology

目录

摘要

Abstract

1 绪论

1.1 研究背景与意义

1.1.1 研究背景

1.1.2 研究意义

1.2 国内外研究现状

1.2.1 国内现状

1.2.2 国外现状

1.3 主要研究内容

2 相关技术介绍

2.1 Django框架

2.2 MySQL数据库

2.3 Python语言

2.4 Vue.js框架

3 系统分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2 经济可行性

3.1.3 操作可行性

3.2 功能需求分析

3.2.1 用户功能

3.2.2 管理员功能

4 系统设计

4.1 系统架构设计

4.2 系统结构功能设计

4.3 系统流程设计

4.3.1 在线小说查询流程设计

4.3.2 阅读登记流程设计

4.3.3 数据爬取流程设计

4.3.4 可视化分析流程设计

4.3.5 通知推送流程设计

4.4 数据库设计

4.4.1 E-R图设计

4.4.2 数据库表设计

5 系统实现

5.1 用户角色功能实现

5.1.1 智能机器人

5.1.2 在线小说

5.1.3 小说数据

5.1.4 通知中心

5.2 管理员角色功能实现

5.2.1 数据分析

5.2.2 在线小说管理

5.2.3 小说数据管理

5.2.4 网络小说数据分析与可视化大屏

5.2.5 新闻资讯列表

5.2.6 通知列表

6 系统测试

6.1 系统运行环境

6.2 测试目的

6.3 测试方法

6.4 测试内容

6.5 测试结论

7 总结

参考文献

致谢

1绪论

1.1研究背景与意义

1.1.1研究背景

网络文学市场经历由小到大的发展过程,作品的数量激增。而平台在运营过程中遇到的问题有数据采集速度慢、信息更新不及时、不能准确把握用户的需求等问题。传统的以人工录入的方式已经难以应对大量的作品的变化,数据孤岛使得平台无法全面了解市场的动向。读者在众多的作品中挑选自己喜欢的内容十分困难,影响阅读体验。而激烈的市场竞争使平台开始寻找方法来改善自身的运营状况,利用数据进行决策是提高竞争力的有效途径。随着爬虫技术的发展使得自动化的数据抓取成为可能,而可视化分析软件可以将大量信息以图形的方式呈现出来,帮助人们迅速发现重点,了解时下热门话题以及发展趋势。开发一个包括数据抓取、存储管理、数据分析等功能在内的系统,是解决目前网络文学网站所面临问题的一种方式。

1.1.2研究意义

此平台利用自动抓取方式代替人工填写,节省时间同时降低由于人工操作造成的工作量。爬虫依据规定周期获取网站内容,清洗过滤之后存储到数据库中,免去人工复制粘贴带来的麻烦。可视化展示可显示作品受关注度、类型占比以及更新速度等情况,在不需要查看大量数据情况下了解整个网站情况。在客户端有智能推荐,根据读者喜好向其推送相似作品,增加用户寻找内容效率并且使用户逗留更长时间。系统产生报表可用于决定购买什么样的内容、进行市场推广等,网站可根据流行趋势分配资源。对于网络文学行业来说,这个系统说明技术手段可以用来进行内容管理,给其他网站提供了一种参考方法,在社会上,它简化了数字阅读过程,满足人们日益增长对精神文化的需求,促进了文化产业数字化发展。

1.2国内外研究现状

1.2.1国内现状

网络文学平台的技术发展是从简单的存储到智能化的发展历程,在早期的系统主要以作品保存为主,在用户数量增加后对数据进行分析的需求也逐渐显现,国内学者对于小说管理系统的设计理念、数据分析的方法以及用户体验等进行了一些研究。

杨晟提出一种基于Spring Boot框架下的在线小说管理系统的设计方案,此系统采取前后端分离的方法,使用RESTful API进行通信,在此系统中对于各个功能模块的设计有借鉴作用[1]。司盈盈研究了一种基于Spark的个性化推荐方法,用协同过滤的方式挖掘用户的喜好,形成一个推荐列表,这对本系统中的用户画像建立有一定的启示作用[2]。杨孟姣给出了用Python写爬虫抓取网页信息的方法,通过对HTML代码进行分析从而获取所需的内容,说明爬虫可以用于内容整合,为本系统提供了一条可行的数据获取途径[3]。王闯开发了一种中文小说实体链接系统,利用自然语言处理技术识别文章中的人物关系,此方式可应用于本文内容标签生成部分[4];王凯琪实现了一个网络小说的信息抓取以及管理系统,具有数据获取、保存、查询的功能,在系统的设计思路上给本文的整体设计提供了参考[5]。

国内研究工作已经实现小说管理系统主要功能模块,说明Django可以应用于内容管理领域。他们对于数据抓取自动化、用户体验改善以及推荐算法都有一定探索,这对我们系统设计起到良好借鉴作用。而本文在此基础上进一步增强对数据进行可视化分析能力,在一张图中同时显示多个指标数据变化趋势,使网站管理者能够更加直观地了解网站情况。

1.2.2国外现状

国外的研究更多的是集中在人机交互的设计、系统的架构设计以及用户的使用习惯等方面,在技术上更倾向于模块化的实现方式并且注重系统的灵活性。

Su Y研究了智能人机交互技术在在线阅读系统中使用情况,在此基础上利用自然语言处理技术使系统具有语音识别能力,增强用户体验,此技术也可用于本项目中智能客服部分[6];Shao W设计了一个基于Spring Boot的在线购物平台,将各个业务进行分离形成一个个小的服务,降低后期维护难度,其设计理念对于本项目服务化改造有积极意义[7];Kiemute O探讨健身类APP中说服设计特点,并给出相关建议,这同样可以借鉴到我们项目上关于如何提高用户活跃度问题之上[8]。Atsushi A开发了一个小说创作辅助系统,在此基础上研究故事弧线对读者情绪的影响从而启发我们对于内容推荐的方法进行思考[9]。

国外的研究成果对于系统架构的设计、用户体验等方面有丰富的内容,在产品迭代上更注重以数据为导向的方法论,而这些都对本系统的开发起到了积极的作用。本系统根据中国网络文学网站实际情况,在数据收集、可视化分析、内容管理等进行本土化的设计,以满足中国市场的需求。

1.3主要研究内容

本论文主要完成一个网络小说数据分析及可视化工具的设计开发工作。本论文的研究工作分为四大部分:需求分析、系统设计、功能实现以及测试。需求分析部分通过对网络文学网站运营过程的研究明确数据收集、保存管理、数据分析与展现、用户操作四个方面的需求。系统设计部分采用基于Django框架三层结构设计模式,定义了数据层、业务逻辑层、表现层各自的功能,还具体阐述了爬虫模块、数据处理模块、可视化模块之间的关系。功能实现部分实现了用户端的小说搜索、浏览以及评论,管理员端的数据管理、内容审核、数据分析等功能以及爬虫模块的数据抓取、清洗以及增量更新等操作,在数据库设计中定义了用户信息表、小说信息表、阅读记录表、统计数据表等表之间存在的关系。测试部分对系统进行了功能测试、压力测试和兼容性测试来保证其稳定性。

2相关技术介绍

2.1Django框架

Django是基于Python语言的全栈Web框架,在其内部集成了大量功能模块来降低工作量。它使用MTV架构,将数据模型、业务逻辑以及视图模板分开,使得程序员只需关心各自部分的工作而不必考虑不同部分之间的交互问题[10]。ORM让数据库的操作变成一种面向对象的方法调用形式,只需要定义一个模型类就可以创建一张对应的表格,而且查询也是以链式的方式进行编写的,不会出现由于拼写的错误导致的问题[11]。

框架内置的管理后台自动生成数据维护界面,管理员不需要写任何前端代码就可以进行数据增删改查操作。表单验证是基于声明方式进行配置,在用户提交之前对表单内容进行校验,框架会帮助开发者完成对用户输入进行检查工作,只需要设置一些简单的规则即可。中间件可以用于请求之前做准备工作也可以用于响应之后做收尾工作,在不影响原业务逻辑情况下可以加入很多有用的功能如日志记录或者权限校验等。模板引擎支持变量替换、条件语句以及循环语句等功能,可以使前端页面根据后端传入信息进行变化。这个框架在本项目中主要负责路由分配、数据存储、用户鉴权等工作,丰富的插件使得开发效率得到提升并且使代码更加易于理解和维护。

2.2MySQL数据库

MySQL是关系型数据库管理系统,利用表来保存数据,可以进行复杂的关系型查找操作[12]。InnoDB存储引擎具有事务功能,使数据库的操作具有ACID特性,多条SQL语句作为一个单元一起提交或者全部都不提交,在某一步失败的情况下就会回滚。索引利用B+树加快对数据的访问速度,系统会根据查询条件自动选取最优化的索引路径从而降低全表扫描带来的开销。

数据库支持主从复制架构,在主库上进行写入操作,在从库上进行读取操作提高系统并发度。触发器可以在有数据变化时自动执行某种动作,可以用来保持数据的一致性或者保存日志。视图把复杂的查询隐藏成一个虚拟表,降低了应用程序编写SQL的复杂性。存储过程是一系列SQL语句构成可复用的代码块,可以减少网络通信量。而在本文中,MySQL用于保存用户的个人信息、小说的内容、用户的阅读记录等重要的业务数据,使用外键保持表之间的联系,用索引来加快经常使用的查询的速度,也有很好的事务保证数据的一致性[13]。

2.3Python语言

Python语言由于其简洁易学的特点使人们更容易上手,动态类型使得变量可以在程序执行过程中改变类型而无需进行类型说明,节约了大量的代码量,标准库提供了文件读写、网络通讯以及各种实用工具供用户使用,可以直接使用其中的功能实现一些基本的操作[14]。此外第三方库非常丰富,在线就可以很方便地找到合适的第三方库来满足需求,如requests库简化了发送HTTP请求的操作,BeautifulSoup库则可以用于解析HTML。

语言支持面向对象编程方式,利用类和对象来组织代码,继承可以让代码复用,而多态可以增加程序灵活性。列表推导式、生成器表达式等都是语法糖使编写代码更加简洁高效,装饰器可以在不改变原函数的情况下给函数添加新功能。异常处理是使用try-except语句捕获程序运行时出现的问题从而防止程序因为问题抛出而结束运行。在本文所使用的该系统中,采用Python进行开发,用于编写爬虫代码、数据处理工作以及业务接口服务等,利用其强大的第三方库加快相应功能模块开发速度,利用其灵活性简化数据类型之间转换过程,同时由于其良好的跨平台能力使得该系统可以在各种不同的操作系统上运行[15]。

2.4Vue.js框架

Vue.js利用声明式渲染实现数据变化自动同步至相应页面元素,只需要关心数据变化即可,Vue.js处理DOM相关工作[16]。而采用组件化的方式把整个页面划分为多个功能单一的小模块,每一个小模块都有自己的模板、逻辑以及样式,有利于代码重用。响应式的数据系统借助依赖收集方法,在有新的数据产生后便会告知所有依赖此数据的视图进行相应更新,无需人工干预DOM的操作。

虚拟DOM是在内存中模拟一个DOM树副本,在比较新旧两棵树区别之后一次性地去操作真实的DOM,从而减少页面重绘次数,提高效率。指令有v-if、v-for、v-bind等等,便于条件判断、循环遍历以及属性绑定。单文件组件是把模板、脚本、样式都写在一个文件里,方便后续开发。路由管理器可以让单页应用实现页面跳转,根据不同的网址加载相应的组件,不必重新加载整个页面。在本文所介绍系统中,Vue.js实现用户侧功能展示,利用组件复用减少冗余代码,使用响应式数据绑定简化表单操作,路由实现页面间顺畅切换,由于体积小对前端请求带来影响较小[17]。

3系统分析

3.1可行性分析

3.1.1技术可行性

所用到Django框架已经在实际项目中稳定运行,其自带ORM、模板等简化开发工作,Python有丰富第三方库,requests可以发送HTTP请求,BeautifulSoup可以解析HTML,pandas可以进行数据分析,降低编写爬虫难度。而MySQL InnoDB存储引擎支持事务,保证数据一致性,B+树索引提高查询速度,符合程序对于数据库要求。Vue.js框架的组件化开发方式使前端页面更易编写,虚拟DOM提高页面渲染速度,响应式的数据绑定避免大量手工编写DOM代码。开发环境搭建简便,在线可以一键安装Python解释器、Django框架以及MySQL数据库等,开发工具支持程序调试、版本管理,各种技术之间互相配合良好,无技术问题。

3.1.2经济可行性

系统所用到的各种软件工具均为开源或者免费的,Django框架是基于BSD许可证开源,MySQL社区版可以免费使用,Python语言以及第三方库不需要付费授权,Vue.js框架使用MIT许可证,在开发过程中不会产生相关软件费用。硬件层面,系统可以在一般的服务器上架设,初期只需要一台服务器就可以满足要求,云服务提供商提供的按需付费方式减少了硬件成本投入,开发人员只需要会一些Python编程知识,了解基本的Web技术即可,不需要有专业的DBA或者运维人员,人力成本较低。系统上线之后,数据采集自动化减少人工录入时间,可视化分析提升运营决策速度,从长远看有助于降低平台运营成本,产生经济效益。

3.1.3操作可行性

系统界面采用响应式设计,适配桌面浏览器、平板电脑、智能手机等不同终端,用户无需安装客户端软件即可访问。功能布局遵循常见的Web应用交互模式,导航菜单、搜索框、操作按钮的位置符合用户习惯,减少了学习成本。用户端的小说检索功能通过关键词输入即可触发查询,阅读界面提供字体大小调节、夜间模式切换等常用选项,操作流程简洁直观。管理端的数据维护功能采用表格形式展示信息,支持批量操作,通过弹窗确认避免误操作。系统提供了操作提示信息,当用户执行错误操作时,页面显示明确的错误说明,引导用户修正输入。对于不熟悉计算机操作的用户,系统内置了帮助文档,通过图文说明演示常用功能的使用方法,降低了上手难度。

3.2功能需求分析

UML用例图是用于描述系统功能以及用户之间关系一种建模方法,通过角色与用例间关系来表示系统在各种情况下所表现出的行为,在需求分析时使用,它可以帮助我们发现系统的重点所在,不至于忽视某些重要方面。用例图是简洁明了地表达这些内容,方便交流和理解,也为后来的设计实现奠定基础。接下来我将根据角色把该系统的需求进行分析。

3.2.1用户功能

用户可以通过智能机器人发送咨询消息,系统自动回复常见问题。在线小说模块支持关键词查询,用户输入书名或作者名后,系统返回匹配结果列表。查询结果可通过重置按钮清空,重新开始检索。用户选择感兴趣的作品后,可进行阅读登记,系统记录用户的阅读意向。登记完成后,用户点击立即阅读按钮,系统跳转至阅读界面,展示小说内容。小说数据模块提供作品的统计信息查询,用户可以查看热度排行、类型分布等数据,支持点赞操作表达对作品的喜爱。通知中心汇总系统推送的消息,用户可以查看平台公告、活动通知等信息。用户用例图如图3-1所示。

图3-1 用户用例图

3.2.2管理员功能

管理员在数据分析页面查看综合数据可视化看板,系统用图示的方式呈现作品热度、用户活跃度、阅读时间等。在线小说管理页面可进行作品的相关操作如查询、删除、编辑等,管理员能够看到作品详细情况以及编辑作品相关属性。小说数据管理页面有批量导入的功能,管理员可以下载模版文件,根据要求填写相关内容之后上传,系统会自动生成对应的数据保存到数据库中。同时也有抓取数据功能,管理员设置要抓取的网站链接,然后由系统自动获取小说信息。网络小说数据分析与可视化大屏页面有多维联动展示方式,在线管理员可以根据自己的需要选择相应的过滤规则来改变显示的内容。新闻资讯列表可以完成对信息增删改等操作,管理员可发布公告。通知列表可以让管理员编辑通知内容,选择要推送给的对象进行发送,管理员用例图如图3-2所示。

图3-2 管理员用例图

4系统设计

4.1系统架构设计

系统采用分层架构模式,将功能模块划分为用户界面层、应用服务层、数据持久层、系统支持层四个层次。用户界面层负责接收用户操作,通过Vue.js框架构建响应式页面,处理表单提交、按钮点击等交互事件,将用户请求转发至应用服务层[17]。应用服务层运行Django框架,处理业务逻辑,包括用户认证、权限校验、数据验证、业务规则执行等操作,通过ORM系统与数据持久层交互。数据持久层使用MySQL数据库存储业务数据,维护表结构,执行SQL查询,保证数据的一致性。系统支持层提供基础服务,包括日志记录、异常处理、配置管理等功能,为上层模块提供运行环境。各层之间通过接口通信,上层模块调用下层服务,下层模块向上层返回结果,层间依赖关系清晰,便于模块的独立开发。整个系统架构如图4-1所示。

图4-1 系统架构图

4.2系统结构功能设计

系统功能结构围绕用户端操作、管理端维护两条主线展开。用户端包含智能机器人、在线小说、小说数据、通知中心四个功能模块,用户通过这些模块完成咨询、检索、阅读、互动等操作。管理端包含数据分析、在线小说管理、小说数据管理、可视化大屏、新闻资讯列表、通知列表六个功能模块,管理员通过这些模块完成数据维护、内容审核、统计分析、消息推送等工作。智能机器人模块提供自动问答服务,在线小说模块支持作品检索,小说数据模块展示统计信息,通知中心汇总系统消息。数据分析模块生成可视化报表,在线小说管理模块维护作品信息,小说数据管理模块处理数据导入,可视化大屏模块展示多维度数据,新闻资讯列表模块管理平台动态,通知列表模块发送系统通知。系统功能结构图如图4-2所示。

图4-2 系统功能结构图

4.3系统流程设计

4.3.1在线小说查询流程设计

用户在检索框输入关键词后,系统接收查询请求,验证输入内容的合法性。验证通过后,系统调用数据库查询接口,根据关键词匹配小说标题、作者名称、标签信息。数据库返回符合条件的记录集,系统对结果进行排序处理,优先展示热度高的作品。处理完成后,系统将结果列表返回前端页面,用户可以浏览查询结果。若查询结果为空,系统提示用户调整关键词重新检索。用户选择感兴趣的作品后,系统记录用户的浏览行为,更新作品的访问统计数据。在线小说查询流程图如图4-3所示。

图4-3 在线小说查询流程图

4.3.2阅读登记流程设计

用户在作品详情页点击阅读登记按钮,系统检查用户登录状态。若用户未登录,系统跳转至登录页面,要求用户完成身份验证。登录成功后,系统判断用户是否已登记该作品。若已登记,系统提示用户重复操作,流程结束。若未登记,系统在数据库中创建阅读记录,关联用户ID、作品ID、登记时间等信息。记录创建成功后,系统更新作品的登记人数统计,向用户发送登记成功通知。用户可以在个人中心查看已登记的作品列表,系统支持取消登记操作。阅读登记流程图如图4-4所示。

图4-4 阅读登记流程图

4.3.3数据爬取流程设计

管理员在小说数据管理模块配置目标网站地址,设置爬取规则,包括页面结构、数据字段映射关系。系统验证配置信息的完整性,检查目标网站的可访问性。验证通过后,系统启动爬虫任务,发送HTTP请求获取网页内容。爬虫模块解析HTML结构,提取小说标题、作者、简介、章节列表等信息。提取完成后,系统对数据进行清洗,去除HTML标签、统一字符编码、处理缺失值。清洗后的数据经过去重处理,避免重复存储。系统将处理后的数据批量插入数据库,更新作品索引。若爬取过程中出现网络异常或解析错误,系统记录错误日志,暂停任务,等待管理员处理。数据爬取流程图如图4-5所示。

图4-5 数据爬取流程图

4.3.4可视化分析流程设计

管理员进入数据分析模块,系统加载默认的统计维度,包括作品热度、类型分布、更新频率等指标。系统从数据库中查询统计数据,计算各维度的数值。计算完成后,系统调用图表库生成可视化图表,包括柱状图、饼图、折线图等形式。管理员可以通过筛选条件调整统计范围,选择时间区间、作品类型、用户群体等参数。系统根据新的筛选条件重新查询数据,更新图表内容。图表支持交互操作,管理员点击图表元素后,系统展示该元素的详细数据。系统提供数据导出功能,管理员可以将统计结果保存为Excel文件。可视化分析流程图如图4-6所示。

图4-6 可视化分析流程图

4.3.5通知推送流程设计

管理员在通知列表模块编辑通知内容,填写标题、正文、推送对象等信息。系统验证通知内容的完整性,检查标题长度、正文格式是否符合规范。验证通过后,管理员选择推送方式,包括全员推送、指定用户推送、按条件筛选推送。系统根据推送方式查询目标用户列表,生成推送任务队列。推送任务按照队列顺序执行,系统向每个用户发送通知消息,记录推送状态。用户登录系统后,通知中心显示未读消息数量,用户点击查看通知详情。系统统计通知的阅读率,管理员可以查看推送效果报告。通知推送流程图如图4-7所示。

图4-7 通知推送流程图

4.4数据库设计

数据库设计是在系统规划阶段,根据业务需求将现实世界中的实体、属性及关系抽象为数据模型的过程。设计者首先识别并定义实体及其属性,确定主键与外键关联,建立符合范式要求的逻辑结构;随后结合性能目标,选择字段类型、索引策略、分区方案及存储引擎,形成可直接部署的物理结构,以保证数据完整性、查询效率与未来可扩展性。

4.4.1E-R图设计

 概念模型设计将现实世界中的业务实体抽象为数据结构,明确实体之间的关联关系[18]。网络小说系统涉及用户、作品、阅读记录、统计数据等核心实体,这些实体通过外键关联形成完整的数据网络。用户实体记录账号信息,作品实体存储小说内容,阅读记录实体关联用户与作品,统计数据实体汇总分析结果。实体之间存在一对多、多对多的关联关系,例如一个用户可以阅读多部作品,一部作品可以被多个用户阅读,这种多对多关系通过中间表实现。概念模型采用E-R图表示,图中实体用矩形框标识,属性用椭圆形标识,关系用菱形框标识,连线表示实体间的关联方向。通过概念模型可以清晰地理解系统的数据组织方式,为后续的逻辑模型设计提供依据。系统全局E-R图如图4-8所示。

图4-8 系统E-R图

4.4.2数据库表设计

 数据库逻辑设计将概念模型转化为具体的表结构,定义字段类型、长度、约束条件[19]。每个实体对应一张数据表,实体属性转化为表字段,主键字段唯一标识每条记录,外键字段建立表间关联。字段类型根据数据特征选择,整数类型用于存储ID、计数值,字符串类型用于存储文本内容,日期类型用于存储时间信息。字段长度根据业务需求设定,避免浪费存储空间。约束条件包括非空约束、唯一约束、默认值约束,保证数据的完整性。索引设计针对高频查询字段,提升查询性能。表间关联通过外键实现,维护数据的参照完整性。逻辑设计阶段需要考虑数据冗余、查询效率、扩展性等因素,平衡存储成本与性能需求。

(1)用户表主要是用来存储用户的基本信息。主要包括用户id、用户名、密码、邮箱等字段。如表4-1所示。

表4-1 用户表

序号

字段名

类型

长度

备注

1

用户id

bigint

20

主键

2

用户名

varchar

50

用户登录名

3

密码

varchar

100

加密存储

4

邮箱

varchar

100

联系邮箱

5

手机号

varchar

20

联系电话

6

注册时间

datetime

-

账号创建时间

7

最后登录时间

datetime

-

最近访问时间

8

用户状态

varchar

20

正常/禁用

(2)小说表主要是用来存储小说的基本信息。主要包括小说id、小说名称、作者、简介等字段。如表4-2所示。

表4-2 小说表

序号

字段名

类型

长度

备注

1

小说id

bigint

20

主键

2

小说名称

varchar

100

作品标题

3

作者

varchar

50

作者姓名

4

简介

varchar

255

内容简介

5

封面图片

varchar

200

图片路径

6

类型

varchar

50

作品分类

7

状态

varchar

20

连载/完结

8

字数

int

11

总字数

9

章节数

int

11

章节总数

10

热度值

int

11

热度统计

11

创建时间

datetime

-

创建时间

12

更新时间

datetime

-

更新时间

(3)阅读记录表主要是用来存储用户的阅读行为数据。主要包括记录id、用户id、小说id、阅读进度等字段。如表4-3所示。

表4-3 阅读记录表

序号

字段名

类型

长度

备注

1

记录id

bigint

20

主键

2

用户id

bigint

20

外键

3

小说id

bigint

20

外键

4

阅读进度

int

11

章节进度

5

登记时间

datetime

-

登记时间

6

最后阅读时间

datetime

-

最近阅读时间

7

阅读时长

int

11

累计时长(分钟)

(4)小说数据表主要是用来存储小说的统计数据。主要包括数据id、小说id、点赞数、收藏数等字段。如表4-4所示。

表4-4 小说数据表

序号

字段名

类型

长度

备注

1

数据id

bigint

20

主键

2

小说id

bigint

20

外键

3

点赞数

int

11

点赞统计

4

收藏数

int

11

收藏统计

5

评论数

int

11

评论统计

6

分享数

int

11

分享统计

7

统计日期

date

-

统计日期

(5)管理员表主要是用来存储管理员的账号信息。主要包括管理员id、用户名、密码、角色等字段。如表4-5所示。

表4-5 管理员表

序号

字段名

类型

长度

备注

1

管理员id

bigint

20

主键

2

用户名

varchar

50

登录名

3

密码

varchar

100

加密存储

4

角色

varchar

30

角色类型

5

权限

varchar

200

权限列表

6

创建时间

datetime

-

创建时间

(6)通知表主要是用来存储系统通知的内容信息。主要包括通知id、标题、内容、推送方式等字段。如表4-6所示。

表4-6 通知表

序号

字段名

类型

长度

备注

1

通知id

bigint

20

主键

2

标题

varchar

100

通知标题

3

内容

varchar

255

通知内容

4

推送方式

varchar

30

推送类型

5

创建时间

datetime

-

创建时间

6

发送人id

bigint

20

外键

(7)通知接收表主要是用来记录用户接收通知的状态。主要包括接收id、通知id、用户id、阅读状态等字段。如表4-7所示。

表4-7 通知接收表

序号

字段名

类型

长度

备注

1

接收id

bigint

20

主键

2

通知id

bigint

20

外键

3

用户id

bigint

20

外键

4

阅读状态

varchar

20

已读/未读

5

接收时间

datetime

-

接收时间

(8)新闻资讯表主要是用来存储平台发布的新闻内容。主要包括资讯id、标题、内容、封面图片等字段。如表4-8所示。

表4-8 新闻资讯表

序号

字段名

类型

长度

备注

1

资讯id

bigint

20

主键

2

标题

varchar

100

资讯标题

3

内容

varchar

255

资讯内容

4

封面图片

varchar

200

图片路径

5

发布时间

datetime

-

发布时间

6

作者id

bigint

20

外键

(9)统计数据表主要是用来存储系统的各类统计指标。主要包括统计id、统计类型、统计值、统计日期等字段。如表4-9所示。

表4-9 统计数据表

序号

字段名

类型

长度

备注

1

统计id

bigint

20

主键

2

统计类型

varchar

50

统计维度

3

统计值

int

11

统计数值

4

统计日期

date

-

统计日期

5

关联实体id

bigint

20

关联对象

(10)机器人对话表主要是用来记录用户与智能机器人的对话内容。主要包括对话id、用户id、消息内容、回复内容等字段。如表4-10所示。

表4-10 机器人对话表

序号

字段名

类型

长度

备注

1

对话id

bigint

20

主键

2

用户id

bigint

20

外键

3

消息内容

varchar

255

用户消息

4

回复内容

varchar

255

机器人回复

5

对话时间

datetime

-

对话时间

5系统实现

5.1用户角色功能实现

5.1.1智能机器人

智能机器人功能模块主要是对用户咨询进行自动回复。用户在对话框输入问题后,系统接收消息内容,调用自然语言处理接口分析用户意图。系统根据预设的问答库匹配相关答案,将回复内容返回给用户。对话记录存储在数据库中,用户可以查看历史对话。智能机器人界面如图5-1所示。

图5-1 智能机器人界面

5.1.2在线小说

在线小说功能模块主要是对小说作品进行检索。用户在搜索框输入关键词,系统查询数据库中匹配的作品信息,返回结果列表。用户可以重置搜索条件,清空输入框重新检索。选择感兴趣的作品后,用户可以进行阅读登记,系统记录用户的阅读意向。登记完成后,用户点击立即阅读按钮,系统跳转至阅读页面,展示小说章节内容。在线小说界面如图5-2所示。

图5-2 在线小说界面

5.1.3小说数据

小说数据功能模块主要是对作品统计信息进行展示。用户可以查询作品的热度排行、类型分布等数据,系统从数据库中读取统计结果,以图表形式呈现。用户可以重置查询条件,调整统计维度。用户对喜欢的作品进行点赞操作,系统更新作品的点赞数统计。小说数据界面如图5-3所示。

图5-3 小说数据界面

5.1.4通知中心

通知中心功能模块主要是对系统消息进行汇总。用户登录后,系统显示未读通知数量,用户点击通知列表查看详细内容。通知包括平台公告、活动通知、系统提醒等类型,用户可以标记已读状态。通知中心界面如图5-4所示。

图5-4 通知中心界面

5.2管理员角色功能实现

5.2.1数据分析

数据分析功能模块主要是对系统运营数据进行可视化展示。管理员进入数据分析页面,系统加载综合数据看板,展示作品热度、用户活跃度、阅读时长等指标。图表以柱状图、饼图、折线图等形式呈现,管理员可以通过筛选条件调整统计范围,系统根据新的条件重新查询数据,更新图表内容。数据分析界面如图5-5所示。

图5-5 数据分析界面

5.2.2在线小说管理

在线小说管理功能模块主要是对作品信息进行维护。管理员可以查询作品列表,系统返回所有小说的基本信息。管理员可以删除不符合规范的作品,系统从数据库中移除对应记录。管理员点击详情按钮,系统展示作品的完整信息,包括标题、作者、简介、章节列表等内容。管理员可以修改作品属性,系统更新数据库中的记录。在线小说管理界面如图5-6所示。

图5-6 在线小说管理界面

5.2.3小说数据管理

小说数据管理功能模块主要是对作品数据进行批量处理。管理员可以查询小说的统计数据,系统返回点赞数、收藏数、评论数等指标。管理员可以删除异常数据,系统从数据库中移除对应记录。管理员下载数据导入模板文件,按照格式填写数据后上传,系统解析文件内容并存入数据库。管理员点击详情按钮,系统展示数据的详细信息。管理员可以修改数据属性,系统更新数据库中的记录。管理员配置爬取规则后,系统启动爬虫任务,自动从目标网站抓取小说信息。小说数据管理界面如图5-7所示。

图5-7 小说数据管理界面

5.2.4网络小说数据分析与可视化大屏

网络小说数据分析与可视化大屏功能模块主要是对多维度数据进行联动展示。管理员进入大屏页面,系统加载全局数据视图,展示作品分布、用户行为、热度趋势等指标。图表之间支持联动交互,管理员点击某个图表元素后,其他图表自动更新相关数据。管理员可以通过筛选条件调整展示范围,系统根据新的条件重新查询数据,刷新大屏内容。网络小说数据分析与可视化大屏界面如图5-8所示。

图5-8 网络小说数据分析与可视化大屏界面

5.2.5新闻资讯列表

新闻资讯列表功能模块主要是对平台动态进行管理。管理员可以查询资讯列表,系统返回所有新闻的基本信息。管理员可以删除过期资讯,系统从数据库中移除对应记录。管理员点击添加按钮,系统打开编辑页面,管理员填写标题、内容、封面图片等信息后提交,系统将新资讯存入数据库。管理员点击详情按钮,系统展示资讯的完整内容。管理员可以修改资讯属性,系统更新数据库中的记录。新闻资讯列表界面如图5-9所示。

图5-9 新闻资讯列表界面

5.2.6通知列表

通知列表功能模块主要是对系统通知进行管理。管理员可以查询通知列表,系统返回所有通知的基本信息。管理员可以删除已发送的通知,系统从数据库中移除对应记录。管理员点击发送通知按钮,系统打开编辑页面,管理员填写标题、内容、推送方式等信息后提交,系统根据推送方式查询目标用户列表,生成推送任务队列,向每个用户发送通知消息。通知列表界面如图5-10所示。

图5-10 通知列表界面

6系统测试

6.1系统运行环境

系统的技术栈涵盖前端、后端及开发工具与环境,前端部分侧重于用户界面构建与交互实现,后端部分承担业务逻辑处理与数据管理,开发工具与环境为系统开发与维护提供支持。各项技术相互配合,共同保障系统的高效性、稳定性与安全性。系统技术选型表如表6-1所示。

表6-1 系统技术选型表

分类

技术/工具

作用说明

前端技术栈

HTML/CSS/JavaScript

构建网页结构与样式,实现动态交互效果

Vue.js

前端框架,用于快速构建界面,实现数据与视图分离

Element UI

基于Vue.js的UI组件库,提供丰富界面元素与组件,提高开发效率

Axios

用于HTTP请求,实现前后端数据交互

后端技术栈

Java

后端开发语言,结合Spring Boot实现业务逻辑开发

Spring Boot

简化项目搭建与开发,提供自动配置与依赖管理

MyBatis

持久层框架,完成数据模型与数据库表映射

MySQL

关系型数据库,用于存储用户、商品、订单等数据

Spring Security

提供身份认证与授权机制,保障系统安全

Redis

用于缓存热点数据,提高系统访问性能

开发工具与环境

IntelliJ IDEA

Java开发工具,支持代码提示与调试功能

Maven

项目管理与构建工具,用于依赖管理与自动化构建

6.2测试目的

 系统测试旨在验证功能模块的业务逻辑准确性,检查数据流转过程中的完整性。测试过程关注用户操作路径的流畅性,确认界面交互响应符合预期行为。通过模拟真实使用场景,发现潜在的逻辑错误、数据异常、性能瓶颈等问题。测试覆盖用户端的检索、阅读、互动功能,管理端的数据维护、统计分析、通知推送功能,爬虫模块的数据采集、清洗、存储功能。测试结果用于评估系统的稳定性,为后续优化提供依据。

6.3测试方法

测试采用黑盒测试方法,从用户视角验证功能的正确性,不关注代码实现细节。测试用例设计覆盖正常操作流程、边界条件、异常输入等场景[20]。功能测试验证每个模块的基本功能是否正常运行,例如用户登录、小说检索、数据统计等操作。性能测试评估系统在并发访问情况下的响应速度,记录页面加载时间、数据库查询耗时等指标。兼容性测试检查系统在不同浏览器、不同分辨率下的显示效果,确保界面布局适配各种终端设备。测试过程中记录操作步骤、预期结果、实际结果,对比分析发现的问题,提交缺陷报告,开发人员修复后进行回归测试,确认问题已解决。

6.4测试内容

(1)在线小说查询功能测试如表6-2所示。

表6-2 在线小说查询功能测试表

测试项

测试步骤

预期结果

实际结果

关键词检索

输入小说名称进行查询

返回匹配的作品列表

符合预期

空关键词查询

不输入任何内容直接查询

提示输入关键词

符合预期

结果排序

查看返回结果的排列顺序

按热度值降序排列

符合预期

重置功能

点击重置按钮清空输入

搜索框内容清空

符合预期

(2)阅读登记功能测试如表6-3所示。

表6-3阅读登记功能测试表

测试内容

操作

预期结果

实际结果

未登录状态登记

点击阅读登记按钮

跳转至登录页面

测试成功

已登录状态登记

完成登录后点击登记

创建阅读记录

测试成功

重复登记

对已登记作品再次登记

提示重复操作

测试成功

立即阅读

登记后点击阅读按钮

跳转至阅读页面

测试成功

(3)数据爬取功能测试如表6-4所示。

表6-4数据爬取功能测试表

序号

测试功能

测试步骤

预期结果

实际结果

1

配置爬取规则

填写目标网站地址

配置信息保存成功

一致

2

启动爬取任务

点击爬取按钮

任务开始执行

一致

3

数据解析

爬虫解析网页内容

提取小说信息

一致

4

数据存储

清洗后的数据入库

数据库记录增加

一致

5

异常处理

网络中断时的处理

记录错误日志

一致

(4)可视化分析功能测试如表6-5所示。

表6-5可视化分析功能测试表

测试项

测试目的

测试步骤

预期结果

实际结果

图表加载

验证图表显示

进入数据分析页面

图表正常渲染

符合预期

筛选条件

验证数据筛选

调整时间范围

图表内容更新

符合预期

图表交互

验证交互功能

点击图表元素

显示详细数据

符合预期

数据导出

验证导出功能

点击导出按钮

生成Excel文件

符合预期

(5)通知推送功能测试如表6-6所示。

表6-6 通知推送功能测试表

模块名称

测试内容

操作

预期结果

实际结果

结论

通知编辑

内容完整性

填写通知信息

验证通过

验证通过

测试成功

推送方式

目标用户选择

选择推送对象

生成用户列表

生成用户列表

测试成功

消息发送

推送任务执行

点击发送按钮

用户收到通知

用户收到通知

测试成功

阅读统计

统计阅读率

查看推送报告

显示阅读数据

显示阅读数据

测试成功

6.5测试结论

经过对系统的单元、集成、系统及验收等多层次的测试,确认软件在功能实现、模块协同和整体性能方面均符合预期。测试过程中发现的问题已得到修复或提出优化建议,未出现影响系统稳定性和核心功能的严重缺陷。综合测试结果表明,系统能够稳定运行,功能完整,安全性和兼容性均满足设计目标。

7总结

网络文学产业的快速发展对数据管理提出了更高要求,传统人工处理方式已无法满足海量作品的动态更新需求。本文设计并实现了基于Django框架的网络小说数据分析与可视化系统,通过技术手段解决了数据采集效率低、信息更新滞后、用户需求难以精准把握等实际问题。系统完成了预期的设计目标,为网络文学平台提供了数据管理工具。

系统实现过程遵循了需求分析、架构设计、功能开发、测试验证的标准流程。需求分析阶段通过调研网络文学平台的运营场景,明确了数据采集、存储管理、分析展示、用户交互四个核心需求。架构设计阶段采用分层架构模式,将系统划分为用户界面层、应用服务层、数据持久层、系统支持层,各层职责清晰,便于模块的独立开发。功能开发阶段完成了用户端的小说检索、在线阅读、互动评论功能,管理端的数据维护、内容审核、统计分析功能,爬虫模块的自动采集、数据清洗、增量更新功能。测试验证阶段通过功能测试、性能测试、兼容性测试,验证了系统的稳定性。Django框架的ORM系统简化了数据库操作,模板引擎提高了页面开发效率,中间件机制增强了系统的扩展性,技术栈的选择保证了开发进度。

系统在实际运行中仍存在一些不足。爬虫模块对目标网站的结构变化适应能力有限,当网站调整页面布局后,数据提取规则需要手动更新。可视化分析功能的图表类型较为单一,缺少更丰富的数据展示形式。用户推荐算法采用简单的协同过滤方法,推荐精度有待提升。系统在高并发场景下的性能表现未经充分验证,数据库查询优化空间较大。

针对上述不足,未来可以从以下方向进行改进。引入机器学习技术优化爬虫模块,通过训练模型自动识别网页结构,提高数据提取的鲁棒性。扩展可视化分析功能,增加热力图、雷达图等图表类型,提供更直观的数据展示效果。改进推荐算法,结合用户行为特征、作品内容特征,构建深度学习模型,提升推荐准确率。优化数据库设计,引入缓存机制,减少高频查询的响应时间,提高系统的并发处理能力。系统为网络文学平台的数字化运营提供了技术支撑,具有一定的应用价值,也为相关领域的研究提供了参考案例。

参考文献

  1. 杨晟. 基于Spring Boot的在线小说管理系统设计[J].信息与电脑(理论版),2024,36(04):106-108.
  2. 司盈盈.基于Spark的个性化小说推荐系统设计和研究[D].长沙市:中南大学,2023.
  3. 杨孟姣,杜棋东. 基于Python爬虫网站数据分析系统设计与实现[J].计算机时代,2022,34(11):81-88.
  4. 王闯.中文小说的实体链接系统的设计与实现[D].北京市:北京邮电大学,2022.
  5. 王凯琪,兰全祥. 网络小说信息爬取与管理系统的设计与实现[J].信息记录材料,2022,23(05):116-119.
  6. Su Y, Li M. Design of Online Reading Education Simulation System Based on Intelligent Human-Computer Interaction Technology[J].International Journal of Human–Computer Interaction,2025,41(3):1841-1850.
  7. Shao W, Liu K. Design and Implementation of Online Ordering System Based on SpringBoot[J].Journal of Big Data and Computing,2024,2(3):101-110.
  8. Kiemute O. Investigating the Key Persuasive Features for Fitness App Design and Extending the Persuasive System Design Model: A Qualitative Approach[J].Proceedings of the International Symposium of Human Factors and Ergonomics in Healthcare,2021,10(1):47-53.
  9. Atsushi A, Masataka T, Tomoko K. Characters’ Emotion Design Support System for Writing Novels Based on Story Arcs of Target Readers[J].Information and Technology in Education and Learning,2021,1(1):Reg-p005.
  10. 张峻熙. 基于Django的图书推荐系统的设计与实现 [J]. 辽宁师专学报(自然科学版), 2025, 27 (04): 41-49.
  11. 刘丹阳,杨华,张诗桐. 基于Django的个性化图书推荐管理系统设计与实现 [J]. 山西电子技术, 2025, (03): 64-66+80. 
  12. 庞敏. MySQL数据库的数据安全应用设计技术研究[J]. 数字通信世界,2024(9):25-27. 
  13. 柳青,程晨. MYSQL数据库技术应用一体化课程开发研究[J]. 造纸装备及材料,2024,53(5):251-253. 
  14.  孙佳星. Python程序设计课程融入人工智能的教学改革探索与实践 [J]. 中国战略新兴产业, 2026, (03): 51-54.
  15. 庄自会. 基于Python的智能客服问答系统平台设计与实现[J].中国战略新兴产业, 2026, (02): 25-27.
  16. 八度云计算(安徽)有限公司. 一种基于Vue框架的UI组件库构建方法:CN202311590956.7[P]. 2024-03-29.
  17. 李晓薇. vue.js前端应用技术分析[J]. 网络安全技术与应用,2022(4):44-45. 
  18. 林明颜.任务驱动教学法在中职《MySQL数据库》课程中的实践研究[D].贵阳:贵州师范大学,2025:1-120.
  19. 窦万峰,蒋锁良,杨俊.软件工程实验教程[M].北京:机械工业出版社,2023:624.
  20. 宫云战.软件测试教程[M].北京:机械工业出版社,2023,725.

致谢

在本次项目的完成过程中,我得到了许多人的帮助和支持,在此,我衷心感谢所有给予我帮助的人。

我要感谢我的指导老师。感谢您在项目的每个阶段给予我悉心的指导和宝贵的建议。每当我在项目中遇到困难和挑战时,您总是耐心地解答我的问题,并且通过详细的讲解帮助我深入理解相关的理论和实践知识。您的专业态度和严谨的教学方法,不仅让我掌握了项目中的技能,还启发了我对专业领域的更深思考。没有您的指导,这个项目无法如此顺利地完成。

我要感谢我的同学们。在项目实施的过程中,大家与我进行了深入的讨论,分享了各自的见解和经验,使我能够从不同的角度看待问题,帮助我更好地完成任务。虽然这个项目是独立完成的,但与同学们的交流让我收获了许多新的思路和灵感。我还要感谢我的家人。在我投入大量时间和精力进行项目研究时,家人始终给予我理解和支持,鼓励我在面对困难时坚持下去。你们的关爱是我不断努力和进步的动力源泉。感谢学校提供的优质学习平台和资源,使我能够顺利地完成项目并实现预期目标。通过本次课业项目,我不仅掌握了相关的专业知识和技能,也培养了独立思考和解决问题的能力。这些收获将对我未来的学习和发展产生深远的影响。

点赞+收藏+关注 → 私信领取本源代码、数据库

更多推荐