Спарсить все теги и содержимое - 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("---------------------------");
}