C#使用正则表达式把相对地址转化为绝对地址
本文就应用C#的正则表达式来获取URL,并转化为绝对路径,请看下面实现的方法。 基本思路: 1、先用正则得到所有的页面源码中所有的url, 可以参考这个 (?=href\s*=)(?:[ \s""']*)(?!#|mailt
本文就应用C#的正则表达式来获取URL,并转化为绝对路径,请看下面实现的方法。
基本思路:
1、先用正则得到所有的页面源码中所有的url,
可以参考这个
(?<=href\s*=)(?:[ \s""']*)(?!#|mailto|location.|javascript|.*css|.*this\.)[^""']*(?:[ \s>""'])
得到的值可能如下:
"/company/list.aspx"
"http://www.sohu.com/index.html"
..
2、然后再拼接加上前缀,这个前缀就是你的页面的根目录,之前就已经知道的。
大概写了个简单例子:获取页面内容部分省略了·! 网上资源很多。

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(); } }
收藏文章
精彩图集
精彩文章
- 暂无记录。
热门标签
好东西
授权访问
全屏
jquery插件开发
MVC框架
九宫图
script
Router
多表
php php中通
Alertdialog
面试题答案
控制语句
重试
ubuntu12.10
YUI
左关联
定义ar
jqtransform
Assert
paramiko
行压缩图
调优
DNS查询
一句话删除所
php读写文件
压缩
文件备份
重置SA密
uses-permiss
2014
abstract
sql优化
碎片整理
端口是否打开
repeader
stick
套接字编程
php PHP判断
strtok
Unsupported
HTML代码
公共配置文件
卡号生成
php删除数组
php php提交表
linux实用工具
addClass
另外
自动提交
lynx
表
网站PR值
mat
网站首页
决策树
inotify
RPC
并发安全
极限
赞助商链接
@CopyRight 2002-2008, 1SOHU.COM, Inc. All Rights Reserved QQ:1010969229