0

我使用 C# 和 Agility Pack 来抓取网站,但我得到的结果与我在 firebug 中看到的不同。我想这是因为该站点使用了一些 Ajax。

// The HtmlWeb class is a utility class to get the HTML over HTTP
HtmlWeb htmlWeb = new HtmlWeb();
// Creates an HtmlDocument object from an URL
HtmlAgilityPack.HtmlDocument document = htmlWeb.Load("http://www.saxobank.com/market-insight/saxotools/forex-open-positions");
// Targets a specific node
HtmlNode someNode = document.GetElementbyId("href");
// If there is no node with that Id, someNode will be null
richTextBox1.Text = document.DocumentNode.OuterHtml;

有人可以就如何正确执行此操作的代码提出建议,因为我得到的只是普通的 html。我正在寻找的是一个

div id= "ctl00_MainContent_PositionRatios1_canvasContainer"

有任何想法吗?

4

1 回答 1

0

如果您ID,请使用它 -href是属性的名称,而不是id.

HtmlNode someNode = 
    document.GetElementbyId("ctl00_MainContent_PositionRatios1_canvasContainer");

这将是具有该 ID的div 。

然后,您可以使用以下方法选择任何子a节点及其href该节点的属性:

var href = someNode.SelectNodes("//a")[0].Attributes["href"].Value;
于 2013-01-17T17:44:16.973 回答