使用HtmlAgillityPack如何只获取没有HTML标签的数据?

时间:2016-07-20 07:55:18

标签: c# web-scraping html-agility-pack

我开始使用Html Agility Pack在C#中抓取一个网页。 我编写了这段代码来从表标签中获取数据(此时我将结果放在标签中)。

我的目标是将数据放入DataGridView

无论如何,我想一步一步地进行,所以我的问题是两个:

  1. 如何在没有html标签的情况下获取数据?
  2. 如何从两个或多个标签中获取数据?
  3. 这是我的代码:

    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:我用InnerHtml更改了InnerText。是否有可能从内部标签获取数据?这是html代码的一个例子:

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

    我需要获得“数据奇数”值...我该怎么做?

1 个答案:

答案 0 :(得分:0)

试试这个......

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

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

  }