基于网络爬虫技术的网络新闻分析(二)

目录

2  系统需求分析

2.1 系统需求概述

2.2 系统需求分析

2.2.1 系统功能要求

2.2.2 系统IPO图

2.2 系统非功能性需求分析

3  系统概要设计

3.1 设计约束

3.1.1 需求约束

3.1.2 设计策略

3.1.3 技术实现

3.3 模块结构

3.3.1 模块结构图

3.3.2 系统层次图

3.3.3 面向对象设计UML图


前面内容请移步

基于网络爬虫技术的网络新闻分析(一)

资源下载+毕业论文+答辩

基于网络爬虫技术的网络新闻分析.rar

2  系统需求分析

        软件需求分析对软件系统提出了清楚、准确、全面而具体的要求,是对软件使用者意图不断进行揭示与准确判断的过程,它并不考虑系统的具体实现,而是严密地、完整地描述了软件系统应该做些什么的一种过程。

2.1 系统需求概述

        要求爬虫系统能完成对凤凰网新闻、网易新闻、新浪新闻、搜狐新闻等网站新闻数据的实时抓取,并正确抽取出正文,获取新闻的点击量,实现每日定时抓取。能将抓取回来的新闻进行中文分词,利用中文分词结果来计算新闻相似度,将相似的新闻合并起来,同时也合并点击率,最后一点,能将相似因为一段事件内的用户点击趋势以合适的形式展现出来。

        基于网络爬虫技术的网络新闻分析由以下几个模块构成:

                网络爬虫模块。

                中文分词模块。

                中文相似度判定模块。

                数据结构化存储模块。

                数据可视化展示模块。

2.2 系统需求分析

2.2.1 系统功能要求

        按照对系统需求调用的内容分析,系统功能划分为了一下五个模块:

数据采集模块:

        数据采集模块负责数据采集,即热点网络新闻数据的定时采集,以及数据的初步拆分处理。

(1)中文分词模块:

        中文分词模块能将数据采集模块采集到的热点网络新闻数据进行较为准确的中文分词。

(2)中文相似度判定模块:

        中文相似度判定模块通过将数据采集模块采集到的热点网络新闻数据结合中文分词模块的分词结果,进行网络热点新闻的相似度分析,并能够将相似新闻进行数据合并。

(3)数据结构化存储模块:

        数据结构化存储模块贯穿在其他模块之中,在数据采集模块中,负责存储采集拆分后的热点网络新闻数据;在中文分词模块中,负责从数据库读出需要分词处理的网络新闻数据;在中文相似度判定模块中,负责从将分析得到的相似新闻进行存储;在数据可视化展示模块中负责将相似热点新闻数据从数据库读出,其中涉及到大量关于数据库资源的处理。

(4)数据可视化展示模块:

        数据可视化展示模块负责将中文相似度判定模块判定为相似新闻的数据以可视化的形式展示出来,展示形式可以自定义。

2.2.2 系统IPO图

        整个系统的IPO图如图2-1。

图2-1 系统IPO图

        爬虫输入新闻数据,然后处理分析,最后用可视化界面展示出来。

2.2 系统非功能性需求分析

        本系统设计的非功能性需求涵盖了一下几个方面:

性能需求:

        要求爬虫能并行爬取网络新闻,并行分析,数据库的并发处理能力要足够强。

可靠性需求:

        要求系统运行能保持稳定持久状态,没有明显的BUG

易用性需求:

        要求爬虫系统能做到尽可能的自动化,争取不需要人为操作。

维护性需求:

        要求系统出现BUG能比较容易的修复,系统的后期拓展功能较强。

3  系统概要设计

        系统概要设计的主要目的是能在此阶段将系统的主要功能逻辑设计和数据库系统的逻辑设计完全从需求分析中提取出来,在提取的过程中,不仅仅是奔着实现软件的功能而去,还得考虑上下文环境,例如系统最终的运行环境,系统以后可能增加的需求等等相关约束,在捋清楚系统约束之后在进行系统概要设计,这样软件系统之后的二次开发也不会太难。

3.1 设计约束

3.1.1 需求约束

        系统能稳定运行在最低为JDK1.7的平台上。

        数据库向后兼容,最低适配Mysql5.1。

        要求程序有较好的跨平台性,可以同时运行在Linux、windows、Unix系统上。

        要求数据库连接方面,设置的密码足够复杂,数据库连接管理良好,数据库系统能健壮运行。

        禁止使用商业性软件,在本系统中使用的算法或是类库必须是免费的。

        系统对系统配置的要求要尽可能低。

        程序具有良好的可移植性、兼容性、安全性。

3.1.2 设计策略

        为了本系统能适应未来的需求与发展,特制定如下策略:

        系统具有良好的接口扩展功能,能非常容易地扩展新功能,并将可能会经常调整的部分单独提取出来作为一个模块;

        系统代码具有非常良好的复用价值,新功能的添加能基于现有功能进行派生;

        系统代码优化到位,很少出现或者完全不会出现内存泄露的问题,包括数据库连接池的泄露,独享资源使用未关闭句柄的问题等;

        当优化问题与代码健壮性发生冲突时,则以保证代码健壮性为首要目标,可以适当调整优化。

3.1.3 技术实现

        本系统设计与开发工具采用以下配置:

        开发语言:java JDK版本1.7。

        Java是一种具有非常棒的面向对象的设计思想的一门计算机语言语言。Java 技术具有很高的生产力,原因是大量的程序员为其贡献了大量的代码,目前Java程序广泛应用于Web、企业管理系统、云计算、大数据计算等方面,同时Java目前在全球的编程语言的稳居第一。

        开发环境:Eclipse。

        Eclipse 一开始是IBM旗下的一款开发工具,知道后来被IBM贡献给了开源社区,虽然开源,但是其功能一点也不逊于专业收费类型的开发IDE,Eclipse有着强大的开源活力,以及良好的扩展性,很容易在论坛上下载到各种各样为Eclipse量身定制的插件,所以开发本系统采用了Eclipse作为开发IDE。

3.3 模块结构

3.3.1 模块结构图

        爬虫系统软件结构图:

        向爬虫系统输入网页URL,爬虫打开网页解析处理抽出网页正文,然后输出网页正文,如图3-1所示。

 

图3-1 爬虫子系统结构图

        将网页正文传入系统,系统根据词库以及相关策略开始分词,最后将分词结果以数据形式(词组的形式)输出出来,如图3-2所示。

 

 

图3-2 分词子系统结构图

        首先第一步输入数据:网络爬虫系统采集到的数据作为相似度匹配系统的输入,然后进入处理过程,处理过程采用了改进了的余弦定理进行处理,然后系统返回处理后的结果,最终本系统将处理后的结果作为输出,并传递给下一个子系统进行处理,如图3-3所示。

图3-3 文章相似度匹配系统结构图


3.3.2 系统层次图

        本系统设计为分别由三个子系统组成,分别是:网络爬虫系统即数据采集系统、新闻分析系统即中文语料相似度分析系统和最终结果展示系统,如图3-4所示。

 

图3-4 系统层次图

3.3.3 面向对象设计UML图

        (1)在这里首先介绍一下系统中使用的数据库连接池,MF_DBCP自己写的一个数据库连接池,UML类图如图3-5所示。

 

图3-5 系统类图

        在DBCP连接池UML图中,定义了数据库异常抛出类,数据库配置的POJO类,数据库连接池核心类 Pool 以及代理实现了Connection的close() 方法、setAutoCommit()等方法,还有数据库连接池监视器类,用来监视数据库的健康状况等等。

        (2)爬虫核心是Web类,凤凰网新闻、搜狐新闻、网易新闻分别集成了核心Web类,然后各自实现各自的解析规则,核心Web类负责一些基础操作,例如打开网页,获取网页源码,还有一些正则表达式抽取分析算法,其实,Web类也包含了POJO类的作用,也是作为爬虫爬取新闻后生成的结果的载体,如图3-5所示。

 

图3-5 爬虫系统类图 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/630112.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

与禹老师学前端vue3学习汇总

24.5.15: 创建Vue3工程 1.确定自己电脑有没有nodejs环境,在cmd中输入node,如果出现Node.js的版本号说明已经有这个环境了,否则搜索Node.js安装 2.先在D盘创建一个文件夹Vue3_Study,然后在这个空文件夹中右键选择终端…

汇聚荣:拼多多长期没有流量如何提高?

在电商的海洋中,拼多多以其独特的团购模式吸引了众多消费者的目光。然而,随着市场竞争的加剧和消费者需求的多样化,一些商家发现自家店铺的流量持续低迷,销售业绩难以突破。面对这样的挑战,如何有效提升拼多多店铺的客…

Linux进程控制——Linux进程程序替换

前言:Linux进程控制包含了进程终止,进程等待,进程程序替换。走到现在我们也只剩下进程程序替换没介绍了,那么让我们来看看进程程序替换到底是什么! 本篇主要内容: 替换原理 替换函数 实现简易shell 我们所创…

不用投稿邮箱,怎样向各大新闻媒体投稿?

身为单位的信息宣传员,我深知肩上责任重大。每个月,完成单位在媒体上投稿发表文章的考核任务,就如同一场无声的赛跑,既要保证速度,更要注重质量。起初,我遵循“前辈们”的老路,一头扎进了邮箱投稿的海洋。但很快,现实给了我一记重拳——邮箱投稿的竞争犹如千军万马过独木桥,稿件…

C++ 中的 lambda 表达式

1.概念 lambda表达式实际上是一个匿名类的成员函数,该类由编译器为lambda创建,该函数被隐式地定义为内联。因此,调用lambda表达式相当于直接调用匿名类的operator()函数,这个函数可以被编译器内联优化(建议&#xff0…

20240511每日运维----聊聊nignx改配置所有的nginx改完unknow

1、改配置所有的nginx改完unknow src/core/nginx.h src/http/ngx_http_header_filter_module.c src/http/ngx_http_special_response.c src/http/v2/ngx_http_v2_filter_module.c 2、make 3、去objs里面把nginx文件替换过去sbin/nginx

Android系统不同版本存储权限

一、Android存储简介 Android系统分为内部存储和外部存储 从Android6.0开始不断在更新存储(读写)权限,除了在AndroidManifest.xml文件里声明,app运行时也要动态申请使用对应的权限 提醒:应用私有存储不需要动态申请权…

在linux里登录远程服务器

在linux里登录远程服务器。在虚拟终端里输入命令: ssh 远程服务器ip -l username 然后输入登录密码,就可以登录到远程服务器的命令行界面。登录方便,字体也可以在本地机的虚拟终端里设置得大一点。 下面是一张截屏图片。

Linux|基础环境开发工具使用(1)

目录 Linux 软件包管理器 yum 什么是软件包 关于 rzsz 注意事项 查看软件包 如何安装软件 如何卸载软件 Linux编辑器-vim介绍 vi与vim的相同点 vi与vim区别 Linux 软件包管理器 yum 什么是软件包 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译…

每日5题Day3 - LeetCode 11 - 15

每一步向前都是向自己的梦想更近一步,坚持不懈,勇往直前! 第一题:11. 盛最多水的容器 - 力扣(LeetCode) class Solution {public int maxArea(int[] height) {//这道题比较特殊,因为两边是任意…

ADS使用记录之使用RFPro进行版图联合仿真-加入集总元器件

ADS使用记录之使用RFPro进行版图联合仿真-加入集总元器件 ADS使用记录之使用RFPro进行版图联合仿真中已经简单介绍了使用RFPro对版图就行仿真的方法。但是,如果版图中含有一些非微带的结构,比如说电感、电容、晶体管呢,在此举例解释一下。 …

五丰黎红销量增长的秘诀:一物一码数字化营销开创调味品行业新格局!

根据当今经济环境和未来的发展趋势,传统经济向数字化经济转型的发展方向可以说是大势所趋,如何把握先机,率先迈出数字化转型第一步,可以说是无数传统企业都需要思考的问题。 作为中国调味品行业的佼佼者,五丰黎红踩着时…

基于Java的飞机大战游戏的设计与实现(论文 + 源码)

关于基于Java的飞机大战游戏.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89313362 基于Java的飞机大战游戏的设计与实现 摘 要 现如今,随着智能手机的兴起与普及,加上4G(the 4th Generation mobile communication &#x…

深度学习设计模式之抽象工厂模式

文章目录 前言一、介绍二、详细分析1.核心组成2.实现步骤3.代码示例4.优缺点优点缺点 5.使用场景 总结 前言 本文主要学习抽象工厂模式,抽象工厂模式创建的是对象家族,比如:苹果是一个产品,但是他不单单只生产手机,还…

欢乐钓鱼大师攻略大全,新手钓鱼入坑必备攻略!

《欢乐钓鱼大师》是一款深受玩家喜爱的钓鱼手游,在游戏中,玩家可以通过升级和更换鱼竿来享受钓鱼的乐趣,并有机会钓到各种稀有鱼类。然而,很多玩家在闯关过程中遇到了不少困难。为了帮助大家更好地掌握游戏技巧,小编特…

手机怎么下载别人直播间视频

手机下载直播视频,您需要按照以下步骤进行操作: 1. 打开直播平台,获取正在直播的链接,就是直播间的地址,然后粘贴在直接视频解析工具里,就可以同步下载直播视频画面。 2. 获取直播视频解析工具方法&#…

Java入门基础学习笔记24——While循环和do-while循环

1、While循环: 例1: package cn.ensource.loop;public class WhileDemo3 {public static void main(String[] args) {// 目标:掌握while循环的书写格式,以及理解其执行流程// 需求:打印多行Hello Worldint i 0;while…

【C++】:string类的基本使用

目录 引言一,string类对象的常见构造二,string类对象的容量操作三,string类对象的访问及遍历操作四,string类对象的修改操作五,string类非成员函数六,整形与字符串的转换 引言 string 就是我们常说的"…

8个迹象表明你需要一台新笔记本电脑,看一下你的笔记本是否有其中一个

序言 当你第一次打开你的笔记本电脑的盒子时,它会以最高性能运行,电池寿命更长,过热最小,资源使用效率高。然而,随着笔记本电脑的老化,它将不能满足预期用途。以下几个迹象表明,可能是时候寻找并投资一款新设备了。 你的设备不再具有预期用途 如果你的笔记本电脑不再…

JVM学习-虚拟机栈

虚拟机栈 每个线程创建时都会创建一个虚拟机栈,其内部保存一个个栈帧,对应一次次Java方法调用,栈是线程私有的。 生命周期: 与线程相同 作用 主管Java程序的运行,它保存方法的局部变量、部分结果、并参与方法的调用和返回。 …