试着在c#上用敏捷抓取一个网页

本文关键字:网页 一个 抓取 | 更新日期: 2023-09-27 17:54:27

我正在使用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"

任何想法?

试着在c#上用敏捷抓取一个网页

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

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

这将是具有该id的div

您可以选择任何a子节点和该节点的href属性,使用:

var href = someNode.SelectNodes("//a")[0].Attributes["href"].Value;