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

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

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

Имеется HTML страница, со следующими содержаниеми:
<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>
Помогите спарсить данные и получить данные 10 игроков,в TextBox таком виде:
№: 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);
        }
    }
}

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


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

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

15   голосов , оценка 3.867 из 5
Похожие ответы