在javascript加载后读取div

时间:2014-07-28 15:33:45

标签: c# javascript html

我在从论坛解析信息时遇到问题。 下面是一些例子:

  1. Easy
  2. Hard
  3. 获取信息非常容易,因为它们显示在div中,其中id =" poe-popup-container"。

    问题是只有在浏览器允许您查看信息时才会填充div。通过使浏览器高度非常小并查看HTML代码,可以轻松地重现这一点。但是,div将为空,但是一旦您向下滚动以查看该项目,它将会更改。

    我试图用htmlagillitypack读取内部的节点。问题在于,正如我所解释的那样,只有当浏览器说你需要这些信息时它才会有信息。 因此,当您尝试下载html时,div为空。 我也尝试使用网络浏览器下载页面,但同样的事情发生了。

    我试图使用以下代码:

     string page = System.Text.Encoding.UTF8.GetString(Webclient.DownloadData("http://www.pathofexile.com/forum/view-thread/966384"));
            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();           
            doc.LoadHtml(page);            
            HtmlNode node = doc.DocumentNode.SelectSingleNode("//div[@id='poe-popup-container']");            
            MessageBox.Show(node.InnerHtml);
    

1 个答案:

答案 0 :(得分:1)

你试图做不可能的事。 Javascript在浏览器中执行。 HtmlAgilityPack是用于解析静态html的库 - 它不能执行javascript。

那么为什么不考虑浏览器自动化呢?试试例如http://watin.org/