如何解析不一致聊天中的HTML表格内容? Discord.NET C#

问题描述:

美好的一天, 我想解析网站表格中的内容。 在网站上有*的每周玩家排行榜。并且每周我都要命令最好的20名球员。 现在我有以下代码:如何解析不一致聊天中的HTML表格内容? 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>(名称),例如第七个<tr>(该Clanname)

但我失败,阵列+解析这些TR内容不和谐:/

例如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

但他们是空的!

​​ ​​ ​​ ​​ ​​ ​​ –

我认为在表中的内容是动态生成的,页面中的一些javascript代码会生成它,但是这个动态内容会在加载后被加载加载文档。 所以,当你下载页面,你不能得到所有的内容。
你可以阅读更多关于它在这里:
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#