小编Gar*_*ary的帖子

C#转换HTML字符串中的相对于绝对链接

我正在镜像一些内部网站以备份.截至目前我基本上使用这个c#代码:

System.Net.WebClient client = new System.Net.WebClient();
byte[] dl = client.DownloadData(url);
Run Code Online (Sandbox Code Playgroud)

这基本上只是将html下载到一个字节数组中.这就是我要的.然而问题是html中的链接大多数时间是相对的,而不是绝对的.

我基本上想要在相对链接之前附加任何完整的http://domain.is,以将其转换为将重定向到原始内容的绝对链接.我基本上只关心href =和src =.是否有正则表达式将涵盖一些基本情况?

编辑[我的尝试]:

public static string RelativeToAbsoluteURLS(string text, string absoluteUrl)
{
    if (String.IsNullOrEmpty(text))
    {
        return text;
    }

    String value = Regex.Replace(
        text, 
        "<(.*?)(src|href)=\"(?!http)(.*?)\"(.*?)>", 
        "<$1$2=\"" + absoluteUrl + "$3\"$4>", 
        RegexOptions.IgnoreCase | RegexOptions.Multiline);

    return value.Replace(absoluteUrl + "/", absoluteUrl);
}
Run Code Online (Sandbox Code Playgroud)

html c# regex url parsing

8
推荐指数
3
解决办法
1万
查看次数

标签 统计

c# ×1

html ×1

parsing ×1

regex ×1

url ×1