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