Получить все ссылки и заголовки с сайта - 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]
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д