Спарсить данные с HTML страницы - C#
Формулировка задачи:
Имеется HTML страница, со следующими содержаниеми:
Помогите спарсить данные и получить данные 10 игроков,в TextBox таком виде:
Спасибо за ранее!
<table class="table table-hover">
<thead>
<tr>
<th>№</th>
<th>Имя</th>
<th>Уровень</th>
<th>Раса</th>
<th>Класс</th>
<th>Пол</th>
<th>AP</th>
<th>Ранг</th>
<th>Убийств</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>AlexGordon</td>
<td>65</td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/angel.png' title='Ангел' /></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/sniper.png' title='Снайпер'></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/male.png' title='Мужской' /></td>
<td>709 511</td>
<td>Военачальник</td>
<td>2938</td>
</tr>
<tr>
<td>2</td>
<td>Chukcha</td>
<td>65</td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/angel.png' title='Ангел' /></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/assassin.png' title='Убийца'></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/male.png' title='Мужской' /></td>
<td>456 833</td>
<td>Командующий</td>
<td>1308</td>
</tr>
<tr>
<td>3</td>
<td>Tralivali</td>
<td>65</td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/angel.png' title='Ангел' /></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/assassin.png' title='Убийца'></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/female.png' title='Женский' /></td>
<td>178 581</td>
<td>Командующий</td>
<td>1261</td>
</tr>
<tr>
<td>4</td>
<td>Mantana</td>
<td>65</td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/demon.png' title='Демон' /></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/sniper.png' title='Снайпер'></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/female.png' title='Женский' /></td>
<td>27 183 126</td>
<td>Военачальник</td>
<td>2787</td>
</tr>
<tr>
<td>5</td>
<td>Morgan</td>
<td>65</td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/angel.png' title='Ангел' /></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/sniper.png' title='Снайпер'></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/male.png' title='Мужской' /></td>
<td>969 760</td>
<td>Великий генерал</td>
<td>1046</td>
</tr>
<tr>
<td>6</td>
<td>Narch</td>
<td>65</td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/demon.png' title='Демон' /></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/chanter.png' title='Чародей'></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/male.png' title='Мужской' /></td>
<td>630 952</td>
<td>Командующий</td>
<td>466</td>
</tr>
<tr>
<td>7</td>
<td>Baxa</td>
<td>65</td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/angel.png' title='Ангел' /></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/gladiator.png' title='Гладиатор'></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/male.png' title='Мужской' /></td>
<td>316 570</td>
<td>Великий генерал</td>
<td>84</td>
</tr>
<tr>
<td>8</td>
<td>Body</td>
<td>65</td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/angel.png' title='Ангел' /></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/chanter.png' title='Чародей'></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/male.png' title='Мужской' /></td>
<td>179 445</td>
<td>Великий генерал</td>
<td>433</td>
</tr>
<tr>
<td>9</td>
<td>Anila</td>
<td>65</td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/angel.png' title='Ангел' /></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/bard.png' title='Бард'></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/female.png' title='Женский' /></td>
<td>79 208</td>
<td>Великий генерал</td>
<td>455</td>
</tr>
<tr>
<td>10</td>
<td>Sage</td>
<td>65</td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/demon.png' title='Демон' /></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/assassin.png' title='Убийца'></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/male.png' title='Мужской' /></td>
<td>52 577</td>
<td>Командующий</td>
<td>761</td>
</tr>
<tr>
<td>11</td>
<td>Green</td>
<td>65</td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/demon.png' title='Демон' /></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/assassin.png' title='Убийца'></td>
<td><img src='http://test1.ru/wp-content/themes/Game/img_top/male.png' title='Мужской' /></td>
<td>42 273</td>
<td>Командующий</td>
<td>761</td>
</tr>
№: 1 Ник: AlexGordon Раса: Ангел Класс: Снайпер Пол: Мужской Очки: 709 511 Ранг: Военачальник Убийства: 2938 - - - - - - - - - - - - №: 2 Ник: Chukcha Раса: Ангел Класс: Убийца Пол: Мужской Очки: 456 833 Ранг: Командующий Убийства: 1308 ... и т.д до 10-го игрока
Помогите пожалуйста!
я совсем нубик в программировании(( выручайте..
Решение задачи: «Спарсить данные с HTML страницы»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using HtmlAgilityPack;
using HtmlDocument = HtmlAgilityPack.HtmlDocument;
namespace ConsoleApplication3
{
internal class Program
{
private static void Main()
{
var doc = new HtmlDocument();
doc.Load("input.txt");
var q = doc.DocumentNode.SelectNodes("//tbody/tr").Select(n =>
{
IEnumerable<HtmlNode> tmpArr = n.Elements("td");
return new
{
number = tmpArr.ElementAt(0).InnerHtml,
nick = tmpArr.ElementAt(1).InnerHtml,
race = tmpArr.ElementAt(3).Element("img").GetAttributeValue("title", ""),
@class = tmpArr.ElementAt(4).Element("img").GetAttributeValue("title", ""),
sex = tmpArr.ElementAt(5).Element("img").GetAttributeValue("title", ""),
points = tmpArr.ElementAt(6).InnerHtml,
rank = tmpArr.ElementAt(7).InnerHtml,
killing = tmpArr.ElementAt(8).InnerHtml
};
}).Take(10).ToList();
string result = q.Aggregate(string.Empty,
(current, variable) =>
current +
(variable.number + Environment.NewLine + variable.nick + Environment.NewLine + variable.race +
Environment.NewLine + variable.@class + Environment.NewLine + variable.sex + Environment.NewLine +
variable.points + Environment.NewLine + variable.rank + Environment.NewLine + variable.killing +
Environment.NewLine + Environment.NewLine));
var textBox = new TextBox();
textBox.Multiline = true;
textBox.ScrollBars = ScrollBars.Both;
textBox.Size = new Size(234, 237);
textBox.Text = result;
var form = new Form();
form.Controls.Add(textBox);
form.AutoSize = true;
Application.Run(form);
}
}
}