2016-12-27 15 views
1

Добрый день, Я хочу проанализировать содержимое из таблицы веб-сайтов. На сайте есть рейтинг лучших игроков за неделю. И с командой ~ еженедельно я хочу превзойти лучших 20 игроков. Сейчас я следующий код:Как я могу анализировать содержимое HTML-таблицы в чате Discord? Discord.NET C#

commands.CreateCommand("weekly") 
      .Do(async (e) => 
      { 
       WebClient webClient = new WebClient(); 
       string html = webClient.DownloadString("http://combatarms.nexon.net/de/ranking/player"); 

       HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 
       doc.LoadHtml(html); 

       foreach (var cell in doc.DocumentNode.SelectNodes("//table[@class='ranking_tbl']/tr/td")) 
       { 
        await e.Channel.SendMessage(cell.InnerText); 
       } 

       // await e.Channel.SendMessage("test"); 
      }); 

Но это не показывает мне что-нибудь, так почему им не так? Лучше всего, что я могу сделать массив (если раньше, но не работал), где я могу сказать: «Мне нужен только первый <tr> (#), второй <tr> (имя) и, например, 7-й <tr> (The Clanname)

Но я не с массивом + разбором этих содержаний тра к раздору:./

к примеру 1 строка в таблице является:

<table class="ranking_tbl" summary=""> 
      <colgroup> 
       <col width="80"> 
       <col width="250"> 
       <col width="100"> 
       <col width="150"> 
       <col width="100"> 
       <col width="100"> 
       <col width="280"> 
      </colgroup> 
      <thead> 
       <tr> 
        <th></th> 
        <th>Name </th> 
        <th>Rang </th> 
        <th>EP </th> 
        <th>KDR </th> 
        <th>Land </th> 
        <th>Clan- </th> 
       </tr> 
      </thead> 
      <tbody> 
       <tr> 
        <td class="cell_left">1</td> 
        <td><a href="/de/profile/player/RADICALIST">RADICALIST</a></td> 
        <td><img src="http://caimage.nexoneu.com/Rank/rank_51.gif" alt=""></td> 
        <td>5.219.130</td> 
        <td>1,46</td> 
        <td><img src="http://caimage.nexoneu.com/Web_site/Main/img/flag/SI.png" alt=""></td> 
        <td><a href="/de/clan/profile/Jasmine%20Thompson">Jasmine Thompson</a></td> 
       </tr> 
+0

Загруженный текст не содержит значения. Взгляните на содержимое переменной html, и вы увидите . –

+0

есть атрибуты td:/ – xKushGene

+0

Но они пустые! <тд класс = "cell_left"> –

ответ

1

Я думаю, содержание в таблице генерируется динамически, на нем генерируется некоторый код javascript на странице. Но этот динамический контент загружается afte r документ загружается. Итак, когда вы загружаете страницу, вы не можете получить весь контент.
Вы можете прочитать об этом здесь:
htmlagilitypack and dynamic content issue
webclient doesn't download the web page completely
Load dynamically generated HTML Code in WebClient
How to extract dynamic ajax content from a web page
Scraping data dynamically generated by JavaScript in html document using C#