Спарсить данные с HTML страницы - C#

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

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

Имеется HTML страница, со следующими содержаниеми:
Листинг программы
  1. <table class="table table-hover">
  2. <thead>
  3. <tr>
  4. <th></th>
  5. <th>Имя</th>
  6. <th>Уровень</th>
  7. <th>Раса</th>
  8. <th>Класс</th>
  9. <th>Пол</th>
  10. <th>AP</th>
  11. <th>Ранг</th>
  12. <th>Убийств</th>
  13. </tr>
  14. </thead>
  15. <tbody>
  16. <tr>
  17. <td>1</td>
  18. <td>AlexGordon</td>
  19. <td>65</td>
  20. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/angel.png' title='Ангел' /></td>
  21. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/sniper.png' title='Снайпер'></td>
  22. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/male.png' title='Мужской' /></td>
  23. <td>709 511</td>
  24. <td>Военачальник</td>
  25. <td>2938</td>
  26. </tr>
  27. <tr>
  28. <td>2</td>
  29. <td>Chukcha</td>
  30. <td>65</td>
  31. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/angel.png' title='Ангел' /></td>
  32. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/assassin.png' title='Убийца'></td>
  33. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/male.png' title='Мужской' /></td>
  34. <td>456 833</td>
  35. <td>Командующий</td>
  36. <td>1308</td>
  37. </tr>
  38. <tr>
  39. <td>3</td>
  40. <td>Tralivali</td>
  41. <td>65</td>
  42. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/angel.png' title='Ангел' /></td>
  43. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/assassin.png' title='Убийца'></td>
  44. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/female.png' title='Женский' /></td>
  45. <td>178 581</td>
  46. <td>Командующий</td>
  47. <td>1261</td>
  48. </tr>
  49. <tr>
  50. <td>4</td>
  51. <td>Mantana</td>
  52. <td>65</td>
  53. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/demon.png' title='Демон' /></td>
  54. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/sniper.png' title='Снайпер'></td>
  55. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/female.png' title='Женский' /></td>
  56. <td>27 183 126</td>
  57. <td>Военачальник</td>
  58. <td>2787</td>
  59. </tr>
  60. <tr>
  61. <td>5</td>
  62. <td>Morgan</td>
  63. <td>65</td>
  64. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/angel.png' title='Ангел' /></td>
  65. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/sniper.png' title='Снайпер'></td>
  66. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/male.png' title='Мужской' /></td>
  67. <td>969 760</td>
  68. <td>Великий генерал</td>
  69. <td>1046</td>
  70. </tr>
  71. <tr>
  72. <td>6</td>
  73. <td>Narch</td>
  74. <td>65</td>
  75. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/demon.png' title='Демон' /></td>
  76. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/chanter.png' title='Чародей'></td>
  77. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/male.png' title='Мужской' /></td>
  78. <td>630 952</td>
  79. <td>Командующий</td>
  80. <td>466</td>
  81. </tr>
  82. <tr>
  83. <td>7</td>
  84. <td>Baxa</td>
  85. <td>65</td>
  86. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/angel.png' title='Ангел' /></td>
  87. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/gladiator.png' title='Гладиатор'></td>
  88. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/male.png' title='Мужской' /></td>
  89. <td>316 570</td>
  90. <td>Великий генерал</td>
  91. <td>84</td>
  92. </tr>
  93. <tr>
  94. <td>8</td>
  95. <td>Body</td>
  96. <td>65</td>
  97. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/angel.png' title='Ангел' /></td>
  98. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/chanter.png' title='Чародей'></td>
  99. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/male.png' title='Мужской' /></td>
  100. <td>179 445</td>
  101. <td>Великий генерал</td>
  102. <td>433</td>
  103. </tr>
  104. <tr>
  105. <td>9</td>
  106. <td>Anila</td>
  107. <td>65</td>
  108. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/angel.png' title='Ангел' /></td>
  109. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/bard.png' title='Бард'></td>
  110. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/female.png' title='Женский' /></td>
  111. <td>79 208</td>
  112. <td>Великий генерал</td>
  113. <td>455</td>
  114. </tr>
  115. <tr>
  116. <td>10</td>
  117. <td>Sage</td>
  118. <td>65</td>
  119. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/demon.png' title='Демон' /></td>
  120. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/assassin.png' title='Убийца'></td>
  121. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/male.png' title='Мужской' /></td>
  122. <td>52 577</td>
  123. <td>Командующий</td>
  124. <td>761</td>
  125. </tr>
  126. <tr>
  127. <td>11</td>
  128. <td>Green</td>
  129. <td>65</td>
  130. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/demon.png' title='Демон' /></td>
  131. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/assassin.png' title='Убийца'></td>
  132. <td><img src='http://test1.ru/wp-content/themes/Game/img_top/male.png' title='Мужской' /></td>
  133. <td>42 273</td>
  134. <td>Командующий</td>
  135. <td>761</td>
  136. </tr>
Помогите спарсить данные и получить данные 10 игроков,в TextBox таком виде:
Листинг программы
  1. №: 1
  2. Ник: AlexGordon
  3. Раса: Ангел
  4. Класс: Снайпер
  5. Пол: Мужской
  6. Очки: 709 511
  7. Ранг: Военачальник
  8. Убийства: 2938
  9. - - - - - - - - - - - -
  10. №: 2
  11. Ник: Chukcha
  12. Раса: Ангел
  13. Класс: Убийца
  14. Пол: Мужской
  15. Очки: 456 833
  16. Ранг: Командующий
  17. Убийства: 1308
  18. ... и т.д до 10-го игрока
Спасибо за ранее!
Помогите пожалуйста! я совсем нубик в программировании(( выручайте..

Решение задачи: «Спарсить данные с HTML страницы»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Linq;
  5. using System.Windows.Forms;
  6. using HtmlAgilityPack;
  7. using HtmlDocument = HtmlAgilityPack.HtmlDocument;
  8.  
  9. namespace ConsoleApplication3
  10. {
  11.     internal class Program
  12.     {
  13.         private static void Main()
  14.         {
  15.             var doc = new HtmlDocument();
  16.             doc.Load("input.txt");
  17.  
  18.             var q = doc.DocumentNode.SelectNodes("//tbody/tr").Select(n =>
  19.             {
  20.                 IEnumerable<HtmlNode> tmpArr = n.Elements("td");
  21.  
  22.                 return new
  23.                 {
  24.                     number = tmpArr.ElementAt(0).InnerHtml,
  25.                     nick = tmpArr.ElementAt(1).InnerHtml,
  26.                     race = tmpArr.ElementAt(3).Element("img").GetAttributeValue("title", ""),
  27.                     @class = tmpArr.ElementAt(4).Element("img").GetAttributeValue("title", ""),
  28.                     sex = tmpArr.ElementAt(5).Element("img").GetAttributeValue("title", ""),
  29.                     points = tmpArr.ElementAt(6).InnerHtml,
  30.                     rank = tmpArr.ElementAt(7).InnerHtml,
  31.                     killing = tmpArr.ElementAt(8).InnerHtml
  32.                 };
  33.             }).Take(10).ToList();
  34.  
  35.             string result = q.Aggregate(string.Empty,
  36.                 (current, variable) =>
  37.                     current +
  38.                     (variable.number + Environment.NewLine + variable.nick + Environment.NewLine + variable.race +
  39.                      Environment.NewLine + variable.@class + Environment.NewLine + variable.sex + Environment.NewLine +
  40.                      variable.points + Environment.NewLine + variable.rank + Environment.NewLine + variable.killing +
  41.                      Environment.NewLine + Environment.NewLine));
  42.  
  43.  
  44.             var textBox = new TextBox();
  45.             textBox.Multiline = true;
  46.             textBox.ScrollBars = ScrollBars.Both;
  47.             textBox.Size = new Size(234, 237);
  48.             textBox.Text = result;
  49.  
  50.             var form = new Form();
  51.             form.Controls.Add(textBox);
  52.             form.AutoSize = true;
  53.  
  54.             Application.Run(form);
  55.         }
  56.     }
  57. }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы