C# 无法刮取<;的内部文本;部门>;节点级

C# 无法刮取<;的内部文本;部门>;节点级,c#,html-agility-pack,C#,Html Agility Pack,我有这些结构 <div class="RecentTrades"> <div class="TradesRow TradesHeader"> <div class="TradesDate">Date</div> <div class="TradesTime">Time</div> <div class="TradesPrice">Trade Prc</

我有这些
结构

<div class="RecentTrades">
    <div class="TradesRow TradesHeader">
        <div class="TradesDate">Date</div>
        <div class="TradesTime">Time</div>
        <div class="TradesPrice">Trade Prc</div>
        <div class="TradesVolume">Volume</div>
        <div class="TradesBuySell">Buy/Sell</div>
        <div class="TradesBid">Bid</div>
        <div class="TradesAsk">Ask</div>
        <div class="TradesValue">Value</div>
    </div>
    <div class="TradesRow TradesBG_G" style="color:#ff0000;">
        <div class="TradesDate">08-Jan-14</div>
        <div class="TradesTime">17:05:00</div>
        <div class="TradesPrice">83.80</div>
        <div class="TradesVolume">1,970,861</div>
        <div class="TradesBuySell">Sell*&nbsp;</div>
        <div class="TradesBid">83.85</div>
        <div class="TradesAsk">83.88</div>
        <div class="TradesValue">1.652<strong>M</strong></div>
    </div>
    <div class="TradesRow TradesBG_W" style="color:#ff0000;">
        <div class="TradesDate">07-Jan-14</div>
        <div class="TradesTime">16:30:11</div>
        <div class="TradesPrice">80.739</div>
        <div class="TradesVolume">40,000</div>
        <div class="TradesBuySell">Sell*&nbsp;</div>
        <div class="TradesBid">83.85</div>
        <div class="TradesAsk">83.88</div>
        <div class="TradesValue">32.30<strong>k</strong></div>
    </div>
</div>

日期
时间
贸易中国
卷
买卖
投标
问
价值
2014年1月8日
17:05:00
83.80
1,970,861
出售*
83.85
83.88
1.652M
2014年1月7日
16:30:11
80.739
40,000
出售*
83.85
83.88
32.30k
这是我使用HTMLAgilityPack解析/刮取的代码

private void btn_fetchTrades_Click(object sender, EventArgs e)
        {
            try
                    {
                        var fileName = @"..\..\bin\Debug\ModifiedPages\recent2.htm";
                        // Load HTML
                        HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
                        doc.Load(fileName);

                        HtmlNode node = doc.DocumentNode.SelectSingleNode("div[@class='RecentTrades']"); 

                        using (FileStream fs = new FileStream(@"..\..\bin\Debug\ModifiedPages\" + "Trades.txt", FileMode.Append))
                        using (StreamWriter sw = new StreamWriter(fs))
                        {
                            // Iterate all rows in the relevant table
                            HtmlNodeCollection rows = node.SelectNodes(".//div");
                            for (int i = 0; i < rows.Count; ++i)
                            {
                                // Iterate all columns in this row
                                HtmlNodeCollection cols = rows[i].SelectNodes(".//div[@class='TradesDate']");
                                HtmlNodeCollection cols2 = rows[i].SelectNodes(".//div[@class='TradesTime']");
                                HtmlNodeCollection cols3 = rows[i].SelectNodes(".//div[@class='TradesPrice']");
                                HtmlNodeCollection cols4 = rows[i].SelectNodes(".//div[@class='TradesVolume']");
                                HtmlNodeCollection cols5 = rows[i].SelectNodes(".//div[@class='TradesBuy']");
                                HtmlNodeCollection cols6 = rows[i].SelectNodes(".//div[@class='TradesSell']");
                                HtmlNodeCollection cols7 = rows[i].SelectNodes(".//div[@class='TradesBid']");
                                HtmlNodeCollection cols8 = rows[i].SelectNodes(".//div[@class='TradesAsk']");
                                HtmlNodeCollection cols9 = rows[i].SelectNodes(".//div[@class='TradesValue']");
                                for (int j = 0; j < cols.Count; ++j)
                                    // Get the value of the column and print it
                                    sw.WriteLine(cols[j].InnerText + "," + cols2[j].InnerText + "," + cols3[j].InnerText + "," +
                                                 cols4[j].InnerText.Replace(",", "") + "," + cols5[j].InnerText + "," + cols6[j].InnerText + "," + cols7[j].InnerText + 

"," + cols8[j].InnerText + "," + cols9[j].InnerText + "," + "922");
                            }
                            sw.Flush();
                            sw.Close();
                            fs.Close();
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
        }
private void btn\u fetchTrades\u单击(对象发送方,事件参数e)
{
尝试
{
var fileName=@“.\..\bin\Debug\modifiedpage\recent2.htm”;
//加载HTML
HtmlAgilityPack.HtmlDocument doc=新的HtmlAgilityPack.HtmlDocument();
doc.Load(文件名);
HtmlNode node=doc.DocumentNode.SelectSingleNode(“div[@class='RecentTrades']);
使用(FileStream fs=newfilestream(@.\..\bin\Debug\modifiedpage\“+”Trades.txt”,FileMode.Append))
使用(StreamWriter sw=新StreamWriter(fs))
{
//迭代相关表中的所有行
HtmlNodeCollection rows=node.SelectNodes(“.//div”);
对于(int i=0;i


但我一直得到“对象引用未设置为对象的实例”。我肯定是节点出了什么问题,但过了这么多小时我还是搞不清楚。如果你们中有人能调查一下就太好了。多谢各位

您知道吗,在HTML中,您有一个类为“BuySell”的节点,但您在代码中分别查找Buy和Sell?那就行了。请使用调试器

您知道吗,在HTML中,您有一个类为“BuySell”的节点,但您在代码中分别查找Buy和Sell?那就行了。请使用调试器

您知道吗,在HTML中,您有一个类为“BuySell”的节点,但您在代码中分别查找Buy和Sell?那就行了。请使用调试器

您知道吗,在HTML中,您有一个类为“BuySell”的节点,但您在代码中分别查找Buy和Sell?那就行了。请使用调试器

在错误之前的行中设置断点。。。使用“监视调试”窗口检查下一行。在错误之前的行中设置断点。。。使用“监视调试”窗口检查下一行。在错误之前的行中设置断点。。。使用“监视调试”窗口检查下一行。在错误之前的行中设置断点。。。使用watch debug window.OMG!检查下一行:((谢谢!!我太粗心了。):(我是个新手,不擅长使用调试器,但我一定会研究它。非常感谢!Codenoire,你知道为什么代码只解析第一个内部
?我只得到标题。试着把“++I”改成“I++”,改成“I++”后仍然一样。天哪!:((谢谢!!我太粗心了!:(我是个新手,不擅长使用调试器,但我一定会研究它。非常感谢!Codenoire,你知道为什么代码只解析第一个内部
?我只得到标题。试着将“++I”改为“I++”,改为“I++”后仍然一样。天哪!:((谢谢!!我太粗心了!:(我是个新手,不擅长使用调试器,但我一定会研究它。非常感谢!Codenoire,你知道为什么代码只解析第一个内部
?我只得到标题。试着将“++I”改为“I++”,改为“I++”后仍然一样。天哪!:((谢谢!!我太粗心了!:(我是个新手,不擅长使用调试器,但我一定会研究的。谢谢你。)