0

第一次尝试学习在 Visual Studio 和 C# 中使用 HTML。我正在使用html 敏捷包库。进行解析。

从这个页面 我试图从每个季度的“净收入”行中提取数字。

这是我目前的进展,(但我不确定如何进一步进行):

        String url = "http://www.google.com/finance?q=NASDAQ:TXN&fstype=ii"
        var webGet = new HtmlWeb();
        var document = webGet.Load(url);
        var body = document.DocumentNode.Descendants()
                            .Where(n => n.Name == "body")
                            .FirstOrDefault();

        if (body != null)
        {

        }
4

1 回答 1

0

嗯,首先不需要先获取body,你可以直接在文档中查询你想要的。至于找到你正在寻找的价值,你可以这样做:

HtmlNode tdNode = document.DocumentNode.DescendantNodes()
  .FirstOrDefault(n => n.Name == "td"
    && n.InnerText.Trim() == "Net Income");
if (tdNode != null)
{
  HtmlNode trNode = tdNode.ParentNode;
  foreach (HtmlNode node in trNode.DescendantNodes().Where(n => n.NodeType == HtmlNodeType.Element))
  {
    Console.WriteLine(node.InnerText.Trim());
    //Output:
    //Net Income
    //265.00
    //298.00
    //601.00
    //672.00
    //666.00
  }
}

还要注意Trim调用,因为某些元素的内部文本中有换行符。

于 2012-06-05T18:27:10.663 回答