Обход дерева ссылок HTML страницы - C#

Узнай цену своей работы

Формулировка задачи:

Необходимо чтобы программа скачивала HTML с сайта, парсила, находила ссылки на другие страницы, и по ним строила дерево углубляющееся на произвольно заданое X. Грубо говоря задача рекурсивного обхода дерева каталога, только по ссылкам. Не могу решить никак =( Main Page -link1 --link1_1 -link2 --link2_1 --link2_2 -link3

Решение задачи: «Обход дерева ссылок HTML страницы»

textual
Листинг программы
      private void GetTree(string url, TreeNode node, int cntr)
        {
 
                HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
                HttpWebResponse response = request.GetResponse() as HttpWebResponse;
                StreamReader str = new StreamReader(response.GetResponseStream());
                string html = str.ReadToEnd();
                Match m = Regex.Match(html, "<\\s*a\\s+href=\"(.*?)\"", RegexOptions.Multiline);
                List<string> links = new List<string>();
 
                while (m.Success)
                {
                    links.Add(m.Groups[1].Value.ToString());
                    m = m.NextMatch();
                }
 
                foreach (string a in links)
                    node.Nodes.Add(a);
 
                if (cntr > 0)
                {
                    foreach (TreeNode n in node.Nodes)
                    {
                        GetTree(n.Text, n, cntr-1);
                    }
                }
 
                str.Close();
        }

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


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

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

15   голосов , оценка 3.933 из 5