我在从论坛解析信息时遇到问题。 下面是一些例子:
获取信息非常容易,因为它们显示在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);
答案 0 :(得分:1)
你试图做不可能的事。 Javascript在浏览器中执行。 HtmlAgilityPack是用于解析静态html的库 - 它不能执行javascript。
那么为什么不考虑浏览器自动化呢?试试例如http://watin.org/