C#.NET网络蜘蛛设计模式
2008-04-15 08:38
330 查看
列表:
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标记,空格,换行, 等标记,以及标记内部信息。保存文本。
考虑到URL->关键字->文本的处理路径。
使用XML存储相关项或数据库关键字插入(信息量可能过大,造成冗余)。
7.检索过程:
根据提交关键字和查找项目,遍历XML或数据库相关字段,将信息保存自HASH表中,或DATAGRID,然后根据自定义“排序算法”进行排序和统计。
返回处理结果。
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标记,空格,换行, 等标记,以及标记内部信息。保存文本。
考虑到URL->关键字->文本的处理路径。
使用XML存储相关项或数据库关键字插入(信息量可能过大,造成冗余)。
7.检索过程:
根据提交关键字和查找项目,遍历XML或数据库相关字段,将信息保存自HASH表中,或DATAGRID,然后根据自定义“排序算法”进行排序和统计。
返回处理结果。
相关文章推荐
- 基于C#.NET的网络蜘蛛设计计划
- C#设计模式之控制反转即依赖注入-Spring.NET
- .NET(C#) Internals: .NET Framework中已使用的设计模式
- 我是如何学习设计模式的一:.NET C# 委托定天下,学好委托事件,设计模式精髓可以理解三分之一,怎么说也是三分天下之势了
- Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle
- .NET(C#) Internals: .NET Framework中已使用的设计模式
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- C#设计模式之Template模板方法模式实现ASP.NET自定义控件 密码强度检测功能
- .NET(C#) Internals: .NET Framework中已使用的设计模式
- .NET(C#) Internals: .NET Framework中已使用的设计模式
- .NET(C#) Internals: .NET Framework中已使用的设计模式
- c#/.NET项目开发有哪些设计模式?
- Visual C#.Net 网络程序开发-Socket篇
- C#设计模式——观察者模式(Observer Pattern)
- 《模式——工程化实现及扩展》(设计模式C# 版)《中介者模式 Mediator》——“自我检验" 参考答案
- C#23种设计模式WebCast讲解笔记大全(25讲)
- c#设计模式之组合模式(composition pattern)
- [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- Net设计模式实例之中介者模式(Mediator Pattern)
- linux(centos) NET模式网络配置