Парсинг html: получить значение между тегами - C#
Формулировка задачи:
Я вот хочу написать парсер, наткнулся на код и он получал атрибуты href, я хотел получить значение между <a></a>
Написал вот это :
Листинг программы
- wClient = new WebClient();
- wClient.Proxy = null;
- wClient.Encoding = encode;
- var doc = new HtmlDocument();
- doc.LoadHtml(wClient.DownloadString("http://dota2.ru/heroes/"));
- var listsNode = doc.DocumentNode.SelectNodes("//div[@class='list']");
- foreach (HtmlNode s in listsNode)
- {
- foreach (HtmlNode aNode in s.ChildNodes)
- {
- if (aNode.Name == "a")
- {
- Console.WriteLine(aNode.InnerText);
- }
- }
- }
- Console.ReadKey();
textual
Листинг программы
- static List<dynamic> DownloadHeroes()
- {
- var wc = new WebClient() { Encoding = Encoding.UTF8 };
- var doc = new HtmlDocument();
- doc.LoadHtml(wc.DownloadString("http://dota2.ru/heroes/"));
- var nodes = doc.DocumentNode.SelectNodes("//div[@class='list']/*/div[@data-name]");
- return nodes.Select(node => new
- {
- Name = node.Attributes["data-name"].Value,
- AttackType = node.Attributes["data-attack-type"].Value,
- DataRole = node.Attributes["data-role"].Value
- .Split(new char[] { ' ', '-' }, StringSplitOptions.RemoveEmptyEntries)
- }).ToList < dynamic>();
- }
- var heroes = DownloadHeroes();
- foreach (var hero in heroes)
- {
- Console.WriteLine("{0}\nТип атаки: {1}\nРоль: {2}\n",
- hero.Name, hero.AttackType, String.Join(", ", hero.DataRole));
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д