首页 公文范文 网站数据分析系统设计研究

网站数据分析系统设计研究

时间:2022-11-17 09:24:30 关键词: 爬虫 网站 数据分析
摘要:在爬取的过程中,无法保证每个字段的数据信息格式是正常的,但是我们每一列数据后续所需要使用的信息必须是一致的,所以在进行后续的可视化操作或者模型分析时,需要确保当前的每一列的数据维度是正确的。

网站数据分析系统设计研究

0引言

伴随着互联网技术的飞速发展,中国正迎来从IT时代到DT时代的变革。《2020中国网络文学蓝皮书》显示,2020年中国网络文学用户规模达4.67亿人,全网作品累计约2800万部,全国文学网站日均更新字数超1.5亿,全年累计新增字数超过500亿。由此可见,网络小说平台在运营过程中会产生大量读者、作者、类别、热度、评分等信息。面对日益增加的数据压力,网络小说的平台流量成本不断提升,平台在老用户维持、新用户吸引、网站点击率等方面逐渐暴露出诸多问题[1]。由于新媒介的不断崛起,读者对网络小说平台的要求也越来越高,用户阅读时长呈现离散化分布,导致网络小说平台行业独占率下滑,用户争夺日趋白热化。因此,对小说平台产生的海量数据进行整合分析势在必行。一方面,有利于指导网络小说平台改编影视,降低运营成本,提高收益[2];另一方面,便于读者和新手更加快捷有效地发现感兴趣的小说题材。本文以“我爱小说网”为研究案例,通过开发一个海量数据分析系统,旨在提高用户体验,推动小说网络平台发展。平台的用户主要包括小说阅读用户、小说网站管理者、新入行的网络小说作者等。通过爬取小说网站信息,并对数据进行分析和处理,有助于用户找到当前比较流行的网络小说类型、各种类型小说所适合的篇幅等。

1系统概述

本系统设计的目的在于使用户便捷高效地采集到需要的数据,并将数据清洗之后进行分析和可视化呈现[3]。因此,本文将系统的功能需求分为数据采集部分、数据存储部分、系统登录部分、后台管理部分、数据可视化交互部分。以下每个功能模块的需求分析。

⑴数据采集部分

数据采集功能只有管理员才拥有权限操作,普通用户无法操作数据采集。因此,数据采集模块是在服务器端上进行操作的。启动后,系统会生成相应的任务采集数据表,然后启动引擎开始爬取网页数据并存储到对应MySQL数据库表中。当任务没有可爬取的网址时,任务结束并返回任务结束信号[4]。

⑵数据存储部分

数据存储部分主要是用来存储爬取小说的文本数据,包括ID、小说类型、小说名称、更新的小说章节、小说作者、小说字数、小说状态、时间、点击量和推荐票数量等。除此之外,还包括系统登录账号以及密码和用户的权限管理。

⑶系统登录部分

当用户对相关的平台接口进行访问时,首先进入系统的登录界面。在该界面中,包括有两个功能模块:注册与登录模块[5]。如果当前用户属于未注册用户,需要用户先进行注册,得到系统管理员的授权之后才能进入系统内部。若当前用户属于已经注册的老用户,可以直接通过填写用户名和密码完成登录。

⑷后台管理部分

前端界面的数据查询部分、小说数据详情展示部分和数据分析可视化部分都需要先从后台管理获取对应的图表数据,而后台数据管理则是从MySQL数据库获取全部数据,管理员用户可以对数据清洗没清洗掉的数据进行管理操作,以求前端展示的数据都是有效数据,并可以根据需求调整排序方式,以及前端页面数据的展示数量。

⑸数据可视化交互部分

数据可视化交互部分只针对普通用户,用户可以自由选择想要查看的图表信息。且用户可以下载所呈现出来的图表信息并保存至本地,方便随时查阅。以上各部分模块独立开发、低耦合、适合于团队敏捷开发,更加方便后期系统的升级和运维。

2系统架构设计

完成系统分析后,需要设计系统的总体架构,主要分为表示层、业务层和数据层。分别使用DjangoWeb框架和DjangoAdmin框架来实现。在系统功能需求分析的基础上,结合数据采集系统的架构设计,将系统分为五个部分,主要有数据采集部分、数据存储部分、系统登录部分、后台管理部分、数据可视化交互部分。系统结构图如下所示:下面简要介绍系统的体系结构,总体框架是PythonWeb的Browser/Server架构,主要包含数据采集、数据分析与展示。其中数据采集部分采用Python的Scrapy框架,后台存储数据采用的是传统的关系型数据库MySQL,后台管理采用Djangoadmin,前端采用DjangoWeb框架,主要用到CSS、JS、HTML等语言。体系结构图示例如图1所示。业务逻辑层主要是由Django框架和Scrapy框架这两部分组成。DjangoWeb负责实现业务逻辑,从后台获取数据、通过统计分析之后,再到前端展示。而后台的数据则是从数据库获取的,后台的数据管理请求可以修改后台的数据并保存下来,实现对数据库的增删改查(CRUD)。数据采集Scrapy框架包括以下这些模块功能:URL获取功能、数据响应内容功能、数据提取功能、数据清洗功能和数据持久化功能等[6]。数据层主要使用传统的关系型数据库MySQL作为数据持久化层。

3系统功能模块设计

⑴数据采集

数据采集模块主要包含URL获取功能、数据响应内容功能、数据提取功能、数据清洗功能和数据持久化功能等,数据采集的功能模块图如图2所示。

⑵数据分析与展示

数据分析与展示模块主要有用户管理、数据分析与展示、数据维护等功能,其中用户管理模块有用户注册和用户登录,数据分析与展示模块包括:小说类别状态图、每年小说类别数量动态占比图、各类小说平均字数图、每年小说占比图、词云图和小说状态图等,数据维护则是通过数据查询查找到需要维护的数据进行维护操作[7],数据分析与展示模块功能设计图如图3所示。

4系统实现

整体的系统实现分为四个模块,分别为数据采集模块、数据清洗模块、系统后台管理模块以及小说数据管理模块。

⑴数据采集模块

Scrapy框架接受到数据采集的任务之后,负责对小说网站进行数据采集。经过页面的请求到URLconf,再到相对应View函数,View模块负责整个采集任务的配置信息,并启动请求。

⑵数据清洗模块

在爬取的过程中,无法保证每个字段的数据信息格式是正常的,但是我们每一列数据后续所需要使用的信息必须是一致的,所以在进行后续的可视化操作或者模型分析时,需要确保当前的每一列的数据维度是正确的。对于系统爬取到的数据,并不能直接满足系统所要分析的内容,所以需要通过对数据进行清洗之后,才能将数据完整的与模型进行适配。

⑶系统后台管理模块

后台管理是针对管理员用户设计,经过数据采集模块爬取数据,清洗数据和持久化存储数据之后。采集到的数据依旧存在一些垃圾数据问题,用DjangoAdmin框架设计实现后台管理模块,可以在后台实现对小说数据的管理和维护操作,通过对小说详情数据表各个表头的正序和倒序排列来实现对小说垃圾数据的快速查找,并且可以对系统用户进行认证和授权管理操作,包括对普通用户授权、资料管理和管理员用户的资料管理等。

⑷小说数据管理模块

管理员可以在后台对存储到MySQL数据库中的小说数据直接进行管理操作,主要任务是去除一些数据清洗时没有清洗掉的垃圾数据。为了方便且快速查找,小说详情表每一个表头都能够实现正序和倒序排列。在数据管理模块,对于清洗后的数据会做一些可视化呈现,其中部分数据分析界如图4所示。图4采用柱状图的形式呈现,所有的小说都可以划分为完结跟连载两种了类别,能明显看到完结数量最高是“玄幻奇幻”,连载数量最高为“都市生活”。

5结束语

网络小说在互联网时代呈现出海量数据且内容繁杂,想获取准确高价值的数据并不容易,由此对网络数据采集与分析提出更高的要求。网络爬虫技术可以高效获取并整合这些海量的数据,为用户提供相关高质量的数据信息[8]。本文设计开发的小说网数据爬取分析系统,通过Scrapy爬虫框架采集数据,利用Django框架管理后台并进行数据分析与展示,使得用户可以直观的获取到自己想要的信息。测试表明,该系统具有高效获取、分析和处理网络小说平台数据的功能,具有较高的实用价值。

作者:杨孟姣 杜棋东 单位:湖南省石门县第一中学 广州铁路职业技术学院