Получить все ссылки и заголовки с сайта - C#
Формулировка задачи:
Здравствуйте, есть задание:
На вход программа получает адрес веб-сайта. Необходимо вытащить все ссылки и заголовок для каждой ссылки, игнорируя перекрестные ссылки и исключать повторяющиеся адреса и занести все в TreeView.
Подскажите, как это реализовать?
Как я понял сначала вытащить html код страницы, через регулярные выражения вытащить ссылки и заголовки страниц.
регулярка для ссылок:
string hrefPattern = @"(\b\w+:\/\/\w+((\.\w)*\w+)*\.\w{2,4})";
и заголовка:
string titlePattern = @"(?<=<title>)(.*)(?=</title>)";
Но как мне поступить с перекрестными и повторными ссылками?
Пока есть только это:
Подскажите как лучше реализовать это?
public string getResp(string url)
{
string content;
HttpWebRequest req;
HttpWebResponse resp;
req = (HttpWebRequest)WebRequest.Create(url);
resp = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.GetEncoding("UTF-8"));
content = sr.ReadToEnd();
sr.Close();
richTextBox1.AppendText(content);
return content;
}
public void GetAllLinks(string HTMLcode)
{
Regex hrefreg = new Regex(hrefPattern);
MatchCollection matches = hrefreg.Matches(HTMLcode);
richTextBox1.AppendText(match.Value); // Пока не знаю как добавить в TreeView вместе с заголовком
}Решение задачи: «Получить все ссылки и заголовки с сайта»
textual
Листинг программы
Uri address = new Uri("http://example.com/home.aspx"); // получим [url]http://example.com/home.aspx[/url]