我正在鏡像一些內部網站用於備份目的。截至目前,我基本上使用這個C#代碼:C#將相對值轉換爲HTML字符串中的絕對鏈接
System.Net.WebClient client = new System.Net.WebClient();
byte[] dl = client.DownloadData(url);
這只是基本上下載的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);
}
http://stackoverflow.com/questions/3836644的重複/ c-convert-relative-to-absolute-links-in-html-string/3836790#3836790你今天早些時候問過的! – 2010-10-01 08:34:05