Получить все ссылки и заголовки с сайта - 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]

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5
Похожие ответы