Sto mirroring di alcuni siti Web interni a scopo di backup. A partire da ora io fondamentalmente uso questo codice C#:Conversione C# rispetto ai collegamenti assoluti nella stringa HTML
System.Net.WebClient client = new System.Net.WebClient();
byte[] dl = client.DownloadData(url);
Questa scarica appena fondamentalmente l'html e in un array di byte. Questo è quello che voglio. Il problema però è che i collegamenti all'interno dell'html sono per lo più relativi, non assoluti.
Fondamentalmente voglio aggiungere qualunque sia il completo http://domain.is prima del collegamento relativo per convertirlo in un collegamento assoluto che reindirizzerà al contenuto originale. Fondamentalmente mi preoccupo solo di href = e src =. Esiste un'espressione regolare che coprirà alcuni dei casi di base?
Edit [Il mio tentativo]:
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);
}
duplicati di http://stackoverflow.com/questions/3836644/c-convert-relativo-to-absolute-links-in-html-string/3836790 # 3836790 che hai chiesto prima oggi! –