主题蜘蛛线程类的设计
主要包括:manager和woker两个类,manag类是个管理类,用来管理和分配具体的线程类worker.
1Manager类
类说明:
管理分配线程,控制每个线程的状态,定义相应的事件。
定义队列:未下载队列、已下载队列、当前队列、worker队列
队列操作:初始化加载种子列,保存种子队列
线程操作:获得当前所有的线程,检测线程状态
属性:
processedURL:已经下载的种子队列
currentURL:当前正在处理的URL
unprocessedURL:未处理的Uri队列
workers:worker蜘蛛队列
threads:线程数
方法:
Start():开始执行,分配指定的线程数量
SaveTask():保存任务,将没有执行完的放入数据库
LoadTask():加载任务,从数据库中加载种子网站
CheckThreadStatus():检测线程的状态
StopTask():停止任务的执行
GetThreadStatus():获得当前所有线程状态
2 Worker类
类说明:
具体负责下载的类。从Manager的种子队列中分配一个种子网址,并进行下载,下载到页面之后分析网页中的所有链接,计算相关度,相关度高的入种子队列;最后将网页源文本存放到数据库
属性:
Manager: 当前管理者
Name: 只读当前线程名
Url:当前正在处理的URL
方法:
Start():启动当前线程
Run():线程循环调用的方法
Download():下载资源,可以为二进制格式,也可以为文本类型
ProcessPage():处理下载后的页面
ScanURLs():扫描超链接
ProcessLink():处理扫描到的超链接将其加入队列
AddUrl2Queue():将ProcessLink过滤后的Url添加到队列
AllowDownload():判断是否属于下载类型
Save2DataBase():将网页源文件保存到数据库
AllowRename():判断某个文件的后缀名是否属于忽略重命名的后缀名
作者:江南的俊马 http://www.21zhu.com 俺要订房网
浙公网安备 33010602011771号