王老师您好,
附件中的程序实现了下载大多数链接的功能,采用了目录层次存储下载的页面。
此番对程序的修改,摒弃了FindLink函数,因为这个函数要想实现对各种链接(包括相对链接地址)的解析,需要考虑到各种超文本标记语言的表达形式和各种不同页面所采取的不同策略,复杂度相当高。我认识这种方式可以辅助完备正则表达式解析的遗漏部分。正则表达式是我在网上找到的一串用于爬虫程序的字符串。该字符串现在还不能实现一个较为完备的地址解析。(正则表达式的实现来源于
Hatem Mostafa的NetCrawler程序以及
http://blog.joycode.com/mvm/archive/2004/04/27/20352.aspx的方法B)
存储层次解析是将各个链接转化为绝对地址,并判断存储位置,通过哈希码标识来形成本地文件。(这一部分的实现来源于
Hatem Mostafa的NetCrawler程序)
虽然实现了基本的功能,但是程序的健壮性和通用性还是收到很大的限制。由于只设置了一个扫描队列,对于遇到不能解析的地址、链接失败的地址、重复地址等还没有合理地进行处理。
另外,由于程序全程是单线程工作,解析和下载串行进行,速度较慢。