用C#2.0实现网络蜘蛛(WebSpider)
http://dev.yesky.com/6/8113006.shtml
C#.NET网络蜘蛛设计模式
【KEYS】C#.NET, 线程, 网络蜘蛛, Vector ,数组 ,XML, 排序算法,Meta Search.
【详细计划】
列表:
1. 搜集蜘蛛引擎开发信息。
2. 建立UrlTreeNode(URL索引树),HashTable(哈希表)保存相关键值,XML数据交换BUFF。
3. 算法选择: 单线程选用DFS(深度优先),多线程选用BFS(广度优先),视情况而定。
4. 相关数据处理:
(1) 读取URL:读取当前URL,分析链接(1/0),进入UnVisited.xml/Visited.xml。
(2) 处理URL:读取UnVisited.xml,返回(1)。
(3) 直到UnVisited.xml为空,否则(2)。
(4) 索引树的建立:与(2)同时进行(仅针对BFS算法)。
5. 算法实现:
BFS:
Begin Visit index:
ClientPage:=index
Push ClientPage into the end of UnVisited table
While UnVisited 非空 then
ClientPage:=UnVisited.top
Visit ClientPage
UnVisited.pop
Push ClientPage into Visited
End while
End begin
DFS:
Begin:
Build new Vector[] of self collections : url(二维)
ClientPage:=index
Push ClientPage into the header of Unvisited talbe
While UnVisited 非空 then
ClientPage:=UnVisited.top
Visit ClientPage
UnVisited.pop
Push ClientPage into Visited
End while
End begin
6. 处理规则以及存储方式:
抓取当前网页,经过字符串(正则表达式)处理后,去除HTML标记,空格,换行,<style></style> <language>等标记,以及标记内部信息。保存文本。
考虑到 URL-> 关键字->文本 的处理路径。
使用XML存储相关项或数据库关键字插入(信息量可能过大,造成冗余)。
7. 检索过程:
根据提交关键字和查找项目,遍历XML或数据库相关字段,将信息保存自HASH表中,或DATAGRID,然后根据自定义“排序算法”进行排序和统计。
返回处理结果。
8. 相关知识及背景:
C#.NET高级编程
XML原理和应用
Windows Sorkets programming
通用搜索算法(主要是DFS和BFS)
SQL相关
正则表达式
.NET常用控件
…………………………..
9. 周期: