Спарсить все теги и содержимое - C#
Формулировка задачи:
Доброго времени суток.
Есть код, но он парсит только главные теги a и или блоки div, а есть внутренние, в которых храниться необходимое для меня содержимое, каким образом можно их спарсить?
Заранее благодарен.
Вот код:
static void Main(string[] args) { // Загружем страницу string data = GetHtmlPageText("http://pr-cy.ru/a/webforu.ru"); // Тег для поиска, ищем теги <a></a> string tag = "a"; string pattern = string.Format(@"\<{0}.*?\>(?<tegData>.+?)\<\/{0}\>", tag.Trim()); // \<{0}.*?\> - открывающий тег // \<\/{0}\> - закрывающий тег // (?<tegData>.+?) - содержимое тега, записываем в группу tegData Regex regex = new Regex(pattern, RegexOptions.ExplicitCapture);//перечисления MatchCollection matches = regex.Matches(data); foreach (Match matche in matches) { Console.WriteLine(matche.Value); Console.WriteLine("Содержание:"); Console.WriteLine(matche.Groups["tegData"].Value); Console.WriteLine("---------------------------"); } Console.ReadKey(); } public static string GetHtmlPageText(string url) { WebClient client = new WebClient(); using (Stream data = client.OpenRead(url)) { using (StreamReader reader = new StreamReader(data)) { return reader.ReadToEnd(); } } }
Решение задачи: «Спарсить все теги и содержимое»
textual
Листинг программы
// Загружем страницу string data = GetHtmlPageText("http://pr-cy.ru/a/webforu.ru"); HtmlDocument htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(data); HtmlNodeCollection nodes = htmlDoc.DocumentNode.SelectNodes("//a"); foreach (var node in nodes) { Console.WriteLine(node.OuterHtml); Console.WriteLine("Содержание:"); Console.WriteLine(node.InnerHtml); Console.WriteLine("---------------------------"); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д