0

C#とAgility Packを使用してWebサイトをスクレイプしますが、取得する結果は、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 に答える