background image

  开发平台:

JDK5.0、Eclipse 

  

 2 系统实现技术 

  

2.1 系统总体结构设计 

  本程序中共有两个包:

command 和 main,command 包中的类是实现整个系统功能的类,

main 包中的类调用 command 包中类的方 法作为程序的入口。command 包中有 11 个类,分

Analyze163、AnalyzeTOM、Downloads、DownPath、MainVariable、MkDir、NetSite、NewsPage 和
SubStr,其中类 Analyze163 用来对 163 网站进行分类下载,类 AnalyzeTOM 用来对 TOM 网
站进行分类下载,类

Downloads 用来进行单个网页的下载,类 DownPath 用来保存各个网

站下载的路径,类

MainVariable 用来保存程序中要用到的相当于全局变量作用的变量,类

MkDir 用来建立多个目录,类 NetSite 用来对网站进行分析和分类下载,类 NewsPage 用来
分析网站的新闻主页,类

Sub? Str 用来截取目标字符串,用正则表达式对截取后的目标字

符串进行匹配,并对匹配成功的链接进行下载。

main 包中只有一个类 NetInfoCollect,用来

作为程序的入口,调用类

NetSite 的 AnalyzeDown 方法对多个网站进行分析并分类下载。 

  程序流程:由

main 包的 NetInfoCollect 类进入程序,NetInfoCollect 的 main 方法调用类

NetSite 的 AnalyzeDown 方法对多个网站进行分析并分类下载,在 AnalyzeDown 方法中,先
调 用 类

MkDir 的 Makedirs 方 法 建 立 要 下 载 网 站 的 下 载 目 录 , 再 调 用 类 Downloads 的

NetPageDown 方法下载网站的新闻主页,并将下载下来的新闻主页保存到网站的根目录下,
然后调用

NewsPage 的 AnalyzeNewspage 方法对新闻主页进行分析,找出要下载的超链接并

保存到网站根目录的

URL.txt 文件中,最后调用 Analyze163 的 StapleDown163 方法实现 163

网站的分类下载,调用

AnalyzeSina 的 StapleDownSina 方法实现 SINA 网站的分类下载,调

AnalyzeSohu 的 StapleDownSohu 方法实现 SOHU 网站的分类下载,调用 AnalyzeTOM 的

StapleDownTOM 方法实现 TOM 网站的分类下载。程序的流程图如图 1 所示。 
  

 

  图

1 程序流程图 

  

2.2 系统中的关键技术 

  

2.2.1 核心技术 

  

1)正则表达式 

  正则表达式(

regular expression,简称 regexes)是操作和检验字符串数据的一种强大

的工具,是用来描述字符串集的字符串。在用正则表达式对网页源文件进行成功匹配后,将
得到这个网页中有用的超链接地址,也就是要进行下载的网页地址,这时就可以调用进行
下载的类将这些匹配成功的网页下载下来。

 

  

2)StringTokenizer 类 

  

StringTokenizer 类允许应用程序将字符串分解为标记,StringTokenizer 方法不区分标识

符、数和带引号的字符串,它们也不识别并跳过注释。可以在创建时指定,也可以根据每个
标记来指定分隔符(分隔标记的字符)集合。

 

  

3)String 类 

  在

Java 语言中,String 类代表字符串。Java 程序中的所有字符串字面值(如"abc")都作

为此类的实例来实现。

 

  

4)输入与输出 

  由于本程序中要将网页下载下来保存到硬盘中,还要从文件中读出要下载的链接地址
因此输入输出也是本程序的一个重点。

 

  ①基本输入

/输出流类 

  流是数据的有序序列,它既可以是未加工的原始二进制数据,也可以是经过一定编码