唐诗可视化项目

该项目通过爬取古诗文网的唐诗三百首内容,利用Java和MySQL存储数据,借助Echarts进行数据可视化展示。主要技术包括:Echarts前端图表库,jQuery交互,HtmlUtil解析,JDBC操作数据库,fastjson处理响应,ansj_seg进行分词,使用Maven管理。项目实现了诗人作品数量的柱状图和词云图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.项目简介

本项目分为两个模块,分别是:诗词爬取模块和数据可视化模块。主要是通过对 古诗文网 的唐诗三百首的内容进行爬取,并将爬取到的内容存储到 MySQL 数据库当中,并将相关的数据内容进行统计,最终将其以图表等形式展示出来的一个 JavaWeb 项目。(其中对诗人以及他们分别创作的著作数量使用柱状图来进行展示,对所有诗词的所有分词以及它们的使用频率使用词云来进行展示)

核心技术:

  • Servlet 的使用
  • Java 操作 MySQL 数据库
  • 数据库设计
  • 响应风格
  • gson 的使用
  • HTTP 协议的理解
  • Servlet 的使用
  • HtmlUtil 第三方库的使用
  • ansj_seg 第三方库的使用
  • sha-256 算法
  • 多线程技术
  • 软件测试的基本策略和方法

二.技术选型

1.前端页面展示渲染工具( echarts )

做一个可视化项目:调研有哪些成熟的可视化第三库类库可以使用,最后选择echarts。
echarts官网

echarts 它是一个开源免费的 javascript 可视化库,本项目中前端页面展示中用到的柱状图和云图皆来源于它。
选择第三方库 echarts 的原因:

  • 开源免费
  • 使用方便:可以直接在其网站上进行调试,得到自己想要的效果,然后进行下载
  • 功能丰富
  • 社区活跃,使用人多,方便询问

在这里插入图片描述

2.前后端交互技术( jQuery)

利用 $.ajax() 发起一个 HTTP 请求,进行前后端数据的交互。

3.列表页和详情页的请求和解析 ( HtmlUtil )

HtmlUtil 是一款开源的 java 页面分析工具,读取页面后,可以有效的使用HtmlUtil 分析页面上的内容,项目可以模拟浏览器运行(一个没有界面的浏览器),被誉为 java 浏览器的开源实现,同时它的运行速度迅速。

一般来说,在小型爬虫项目中,这种框架十分常用,它可以有效的分析出 dom 的标签,并且有效的运行页面上的 js 以便得到一些需要执行 js 才能得到的值。

在这里,我们利用 HtmlUtil 第三方库中的相应方法,来进行一个 Html 页面的请求和解析工作。

在 pom.xml 中加入相应依赖:

<dependency>
            <groupId>net.sourceforge.htmlunit</groupId>
            <artifactId>htmlunit</artifactId>
            <version>2.36.0</version>
</dependency>

通过 HtmlUnit 库,我们可以很轻易的模拟一个浏览器,发起对一个网页的请求,并获得相应的页面元素 HtmlPage .

总结:HtmlUnit 说白了就是一个浏览器,这个浏览器是用 Java 写的无界面的浏览器,正因为其没有界面,因此它执行的速度很快,HtmlUnit 还提供了一系列的 API,这些 API 可以提供的功能比较多,如表单的填充,表单的提交,模仿点击链接等等,由于它还内置了 Rhinojs 引擎,因此可以执行Javascript 代码。

4. Java 语言操作数据库( JDBC )

在 pom.xml 中加入相应依赖:

<dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.45</version>
</dependency>
5.响应字符串( fastjson )

控制自己编写的每一个 Servlet 类实现的方法中的每一个返回值(响应数据)都是 JSON 格式的字符串。
使用 fastjson 第三方类库的原因:

  • 使用方便
  • 支持国产

在 pom.xml 中加入相应依赖:

<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.62</version>
</dependency>
6.分词功能( ansj_seg )

展示页面涉及到了根据每一个词的出现频率来进行词图的展示。这里根据每一首诗的标题和内容来进行分词。我们采用第三方类库 ansj_seg 来完成分词功能。
在 pom.xml 中加入相应依赖:

<dependency>
            <groupId>org.ansj</groupId>
            <artifactId>ansj_seg</artifactId>
            <version>5.1.6</version>
</dependency>
7.Maven 来进行项目管理

使用原因:帮助我们完成项目构建解决一切繁琐事宜
Maven 的好处:

  • 提供一个标准的项目工程目录
  • 提供项目描述
  • 提供强大的版本管理工具
  • 可以分阶段的进行构建过程
  • 提供了丰富的插件库使用
  • 帮助我们进行依赖管理

三.选型技术的简单使用Demo

1.使用 HtmlUtil

package lab;

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlBody;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlPage;

import java.io.File;
import java.io.IOException;
import java.util.List;

public class HtmlUtilDemo {
   
    public static void main(String[] args) throws IOException {
   
        //无界面的浏览器(HTTP客户端)
        WebClient webClient=new WebClient(BrowserVersion.CHROME);
        //关闭了浏览器的js执行引擎,不再执行网页中的js脚本
        webClient.getOptions().setJavaScriptEnabled(false);
        //关闭了浏览器的css执行引擎,不再执行网页中的css布局
        webClient.getOptions()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值