高分求助:有关网页抓取的若干问题
想实现一个分析网页链接的软件,有些问题还没有比较好的办法(笨办法是有,不过效率不高),希望得到大家指点: 
 (1)一个比较好的正则表达式,本正则表达式匹配的条件可能有如下几种: 
 相对路径的网址,如: <a   href= "../index.html "   target= "_parent "> 网站首页 </a> 或 
  <a   href= "bbs/../bbs/board.jsp?boardId=8 "   target= "_parent "> 影视歌坛 </a>  
 或 <a   href= "article/articleId3017.html "   target= "_blank "> 七个心理寓言 </a>  
 或带有http开头的网址,如:http://www.netskycn.com/article/articleId2992.html 
 (2)对于一些相对路径,比如带有一个或多个“../”这样的路径,如果将其转化为正确的、以http开头的URL路径,如将“bbs/../bbs/board.jsp?boardId=8”转化为“http://www.netskycn.com/bbs/board.jsp?boardId=8”。   
 请大家提供一点比较好的思路,以分酬谢。
------解决方案--------------------ding 
 学习..
------解决方案--------------------帮你顶一下!!:)
------解决方案--------------------帮顶一下,记得给分
------解决方案--------------------(1)一个比较好的正则表达式,本正则表达式匹配的条件可能有如下几种: 
 ^(href=)(\w)+( )$
------解决方案--------------------(2)对于一些相对路径, 
 后期再处理。
------解决方案--------------------先提取链接地址,后期再处理链接   
 string realUrl =  " "; 
                         string tmpUrl = site.WebUrl.Trim(); 
                         if (href.IndexOf( "http ")  <= -1) 
                         { 
                             if (href.StartsWith( "/ ")) 
                             { 
                                 Regex r = new Regex(@ "^http://(? <d> [^/]+)/ ", RegexOptions.Compiled); 
                                 realUrl =  "http:// " + r.Match(tmpUrl).Result( "${d} ") + href; 
                             } 
                             else 
                             { 
                                 tmpUrl = tmpUrl.Substring(0, tmpUrl.LastIndexOf( '/ ')); 
                                 realUrl = tmpUrl +  "/ " + href; 
                             } 
                         } 
                         else 
                         { 
                             realUrl = href; 
                         }
------解决方案--------------------不要用 + 来连接两个 路径字符串   
 用Path.Combine( "字符串1 ", "字符串2 ")   
 比如  
 Path.Combine(@ "C:\AAA\BBB ", "CCC ")    // C:\AAA\BBB\CCC   --自动补上一个斜杠   
 Path.Combine(@ "C:\AAA\BBB\ ",@ "\CCC ") //相同结果,自动去掉一个斜杆   
 Path.Combine(@ "C:\AAA\BBB ",@ "..\CCC ") //C:\AAA\CCC   
 Path.Combine( "http://www.wallop.com ", "syeerzy ")   // ^_^  有空来踩踩 ^_^ 
------解决方案--------------------我觉得在这里的话,在Url中选去你要跳转的网页的时候,一般的都会多“../”程序在运行的时候会报错!这里我一直是手写的,不知道您是怎么一会事!!谢谢  着情 给分吧!!
------解决方案--------------------你需要提取url?   
 检测href后面网址是否是以http开头,如果是,则直接提取。   
 如果不是,需要组合。 
 又有两种情况。   
 如果网址是以/开头或者./开头,那么和当前地址栏url的根目录组合,所谓根目录就是第一个/和第二个/之间的字符串。   
 如果是以../开头,检查有几个../,有几个就从后往前开始消除当前地址栏几个/之后的字符,再组合。   
 当然还有其他一些情况,但是99%都是以上三种。 
------解决方案--------------------使用net的话它的类库可以帮你完成.    
 路径的转化
------解决方案--------------------帮顶一下