如何对URL中的http链接进行分析,将相对路径转换为绝对路径?

时间:2022-11-27 11:43:08
获取某一网页中的超链接href部分(已知该网页的url)

由于该href为相对路径,请问如何将其转换为绝对路径?


该网页url为:http://www.xxx.com/news/sports/default.html

该网页的href(相对路径)            要得到的(绝对路径)           
href='./pagename.html'         ->http://www.xxx.com/news/sports/pagename.html
href='/Expert/pagename.html'   ->http://www.xxx.com/Expert/pagename.html
href='../../pagename.html'     ->http://www.xxx.com/pagename.html
……                           ->……   

6 个解决方案

#1


Path.GetFullPath

#2


我是自定义一个根+相对路径就好了

#3


eNet首页->资讯中心->特别策划(http://www.enet.com.cn/enews/inforcenter/designmore.jsp)
该网页上超链接形式如下:
· <a href="/enews/zhuanti/20040421/dianxin.html" class="ph14n">电信日专题:信息技术引领可持续发展之路</a>  2004-05-17 09:00<br>

我已用程序得到该超链接href部分“/enews/zhuanti/20040421/dianxin.html”(通过正则表达式),
我需要将相对路径转为绝对路径?
注:该网页只是个特例,各个网页采用的相对路径形式不同

#4


UrlBase = "http://" + UrlSuffix; 
UrlSuffix = HttpContext.Current.Request.Url.Host + HttpContext.Current.Request.ApplicationPath; 
这样得到的是你的项目层次的地址,然后你再加上"news/sports"应该就可以了吧。

#5


目的:
1.得到目标URL的网页HTML
uri = http://www.enet.com.cn/enews/inforcenter/designmore.jsp
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);


2.提取该网页上的超链接(href 如/enews/zhuanti/20040421/dianxin.html,相对路径形式比较多如../dianxin.html, ../../dianxin.html, ,./dianxin.html等)

3.将相对路径转换为绝对路径?????
href = http://www.enet.com.cn/enews/zhuanti/20040421/dianxin.html

4.生成该网页的RSS

#6


问题解决了! :)
今天随便看了一眼《C#高级编程》实用类 中讲到 URI(还有IP地址和DNS名称)

Uri baseUri = new  Uri("http://www.enet.com.cn/enews/inforcenter/designmore.jsp");
Uri absoluteUri = new Uri( baseUri, "../test.html");

absoluteUri.ToString();// http://www.enet.com.cn/enews/test.html

仍然感谢以上网友的回复!

#1


Path.GetFullPath

#2


我是自定义一个根+相对路径就好了

#3


eNet首页->资讯中心->特别策划(http://www.enet.com.cn/enews/inforcenter/designmore.jsp)
该网页上超链接形式如下:
· <a href="/enews/zhuanti/20040421/dianxin.html" class="ph14n">电信日专题:信息技术引领可持续发展之路</a>  2004-05-17 09:00<br>

我已用程序得到该超链接href部分“/enews/zhuanti/20040421/dianxin.html”(通过正则表达式),
我需要将相对路径转为绝对路径?
注:该网页只是个特例,各个网页采用的相对路径形式不同

#4


UrlBase = "http://" + UrlSuffix; 
UrlSuffix = HttpContext.Current.Request.Url.Host + HttpContext.Current.Request.ApplicationPath; 
这样得到的是你的项目层次的地址,然后你再加上"news/sports"应该就可以了吧。

#5


目的:
1.得到目标URL的网页HTML
uri = http://www.enet.com.cn/enews/inforcenter/designmore.jsp
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);


2.提取该网页上的超链接(href 如/enews/zhuanti/20040421/dianxin.html,相对路径形式比较多如../dianxin.html, ../../dianxin.html, ,./dianxin.html等)

3.将相对路径转换为绝对路径?????
href = http://www.enet.com.cn/enews/zhuanti/20040421/dianxin.html

4.生成该网页的RSS

#6


问题解决了! :)
今天随便看了一眼《C#高级编程》实用类 中讲到 URI(还有IP地址和DNS名称)

Uri baseUri = new  Uri("http://www.enet.com.cn/enews/inforcenter/designmore.jsp");
Uri absoluteUri = new Uri( baseUri, "../test.html");

absoluteUri.ToString();// http://www.enet.com.cn/enews/test.html

仍然感谢以上网友的回复!