开发平台:
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)输入与输出
由于本程序中要将网页下载下来保存到硬盘中,还要从文件中读出要下载的链接地址
因此输入输出也是本程序的一个重点。
①基本输入
/输出流类
流是数据的有序序列,它既可以是未加工的原始二进制数据,也可以是经过一定编码