2016-07-20 12 views
-2

Ich fange an, das Html Agility Pack zu verwenden, um eine Webseite in C# zu scrappen. Ich habe diesen Code geschrieben, um Daten von einem Table-Tag zu bekommen (im Moment lege ich die Ergebnisse in ein Label).Mit HtmlAgillityPack wie kann man nur Daten ohne HTML-Tags bekommen?

Mein Ziel ist es, die Daten in eine DataGridView setzen.

Auf jeden Fall möchte ich Schritt für Schritt gehen, so meine Fragen sind zwei:

  1. Wie kann ich ohne die HTML-Tags nur Daten?
  2. Wie kann ich Daten von zwei oder mehr Tags erhalten?

Dies ist mein Code:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     string url = "http://www.betexplorer.com/soccer/sweden/allsvenskan/results/"; 
     HtmlWeb web = new HtmlWeb(); 
     HtmlAgilityPack.HtmlDocument doc = web.Load(url); 
     foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//table")) 
     { 
      //node.Remove(); 

      outputLabel.Text += node.InnerText; 
     } 
    } 
} 

EDIT1: Ich änderte InnerHtml mit InnerText. Ist es möglich, Daten auch von internen Tags zu bekommen? Dies ist ein Beispiel für HTML-Code:

<tr class="first-row"> 
    <td class="first-cell tl"> 
     <a href="../matchdetails.php?matchid=MaxATAKK" onclick="win(this.href, 560, 500, 0, 1); return false;">Gefle - Kalmar</a> 
    </td> 
    <td class="result"> 
     <a href="../matchdetails.php?matchid=MaxATAKK" onclick="win(this.href, 560, 500, 0, 1); return false;">4:2</a> 
    </td> 
    <td class="odds best-betrate" data-odd="3.53"></td> 
    <td class="odds" data-odd="3.37"></td> 
    <td class="odds" data-odd="2.04"></td> 
    <td class="last-cell nobr date">18.07.2016</td> 
</tr> 

Ich brauche "Daten-ungerade" Werte ... Wie kann ich es tun?

+4

Verwenden node.InnerText .. –

+0

Ok, mache ich es. Kannst du meine Bearbeitung sehen? Ich sollte Daten innerhalb von Tags erhalten, insbesondere "Data-Odd" -Werte. Danke – Marci

+2

Hinweis/FYI: "Daten innerhalb der Tags" werden Attribute genannt – Tyress

Antwort

0

Try this ....

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//table/tr/td[@class='odds']")) 
    { 

    var odds = td.Attributes["data-odd"].Value 

    }