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