相对地址转化绝对地址的一种简单办法

本文提供了一种简单方法来将html代码中的相对地址转化为绝对地址,包括正则表达式匹配和地址拼接步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有朋友问起:如何将获取的html代码中的相对地址转化为绝对地址?在此提供一种简单方法,以方便更多的朋友查询。

基本思路:

1、先用正则得到所有的页面源码中所有的url,

可以参考这个
(?<=href\s*=)(?:[ \s""']*)(?!#|mailto|location.|javascript|.*css|.*this\.)[^""']*(?:[ \s>""'])

得到的值可能如下:

"/company/list.aspx" "http://www.sohu.com/index.html" ..

2、然后再拼接加上前缀 这个前缀就是你的页面的根目录,之前就已经知道的。

大概写了个简单例子:获取页面内容部分省略了·!  网上资源很多。
也可以看这里http://blog.youkuaiyun.com/downmoon/archive/2009/07/01/4312202.aspx

public static void Main(string[] args) { string minHtml = string.Empty; string url = @"http://www.agronet.com.cn/default.aspx"; string preurl = url.Remove(url.IndexOf('/', 8) + 1);//获取url的根目录地址 minHtml = GetRequestString(url, 6000, 1, System.Text.Encoding.UTF8);//获取指定页面的内容 Console.WriteLine(preurl); GetUrlListBHtml(minHtml,preurl); Console.ReadKey(); } /// <summary> /// 获取html内容中的相对url地址,并向相对地址添加前缀 /// </summary> /// <param name="text">html内容</param> /// <param name="pre">要添加的绝对地址前缀</param> public static void GetUrlListBHtml(string text,string pre) { string pat = @"(?<=href\s*=)(?:[ \s""']*)(?!#|mailto|location.|javascript|.*css|.*this\.)[^""']*(?:[ \s>""'])"; // Compile the regular expression. System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(pat, System.Text.RegularExpressions.RegexOptions.IgnoreCase); // Match the regular expression pattern against a text string. System.Text.RegularExpressions.Match m = r.Match(text); int matchCount = 0; while (m.Success) { string urlX=m.Value.Replace("\"","");//替换引号 if (urlX.IndexOf("/") == 0)//相对地址 { matchCount++; Console.WriteLine("第" + matchCount+"个相对地址:"); Console.WriteLine("原地址是"+urlX); Console.WriteLine("新的绝对地址是" + pre+urlX); Console.WriteLine("------------------------------------"); } m = m.NextMatch(); } }

助人等于自助! 3w@live.cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值