2017-06-19 1 views
1

Je ne veux pas extraire toute la page web, mais seulement le texte d'une classe, je n'ai pas trouvé comment faire cela pour mon code. Je veux texte de td class = "résultat neutre" ce code est en html:Comment extraire des données à partir d'un pack d'agilité de classe html spécifique

<td class="result-neutral" xseid="xz1nBfht"><a href="/hockey/russia/khl/ska-st-petersburg-metallurg-magnitogorsk-xz1nBfht/">3 - 2 </a></td> 

Maintenant, j'ai sych un code C# (Info est le nom d'une zone de texte):

HtmlAgilityPack.HtmlDocument doc = new HtmlDocument(); 
     HtmlWeb hw = new HtmlWeb(); 
     doc = hw.Load("http://www.sportstats.com/hockey/russia/detail/ska-st-petersburg-zVJwe4ER/"); 
     var nodes = doc.DocumentNode.Descendants("td"); 
string result = ""; 
     foreach (var item in nodes) 
     { 
      result += item.InnerText+Environment.NewLine; 
     } 
     Info.Text = result; 

    } 

Pour être honnête, je ferais mieux le score, ce qui dans l'exemple ci-dessus est 3-2

+0

Vous pouvez essayer le lien suivant: https://stackoverflow.com/questions/13771083/html-agility-pack-get-all-elements-by-class –

Répondre

0

Je suppose que ce site utilise AJAX pour charger les scores de sorte qu'il ne sera pas disponible pour HTMLAgilityPack lorsque vous u Voir leur .Load().

Vous pouvez peut-être utiliser l'objet WebBrowser en C# pour charger la page en premier, puis utiliser HAP pour charger le contenu. Il y a beaucoup d'exemples à ce sujet.

J'espère que ça aide!

+0

Merci! Vous avez absolument raison, ce code fonctionne pour d'autres pages web –