我试图使用HtmlAgilityPack从我们的中央银行提取一些HTML。
Here是一个每周帐户。声明的下半部分"根据1972年孟加拉国银行令的账户....."包含一行" A.金币和金条"。
我尝试使用以下代码 -
var get = new HtmlWeb();
for (int i = 1; i < 8284; i++)
{
var dat = get.Load("https://www.bb.org.bd/pub/weekly/staffair/state_affairs.php?prId=" + i);
var htm = dat.DocumentNode.InnerHtml;
if (htm.Contains("Gold Coin and Bullion"))
{
File.WriteAllText(@"C:\Test\" + i + ".txt", htm);
Console.WriteLine(i + " written");
}
}
如果我右键点击页面并点击&#34;查看来源&#34;我看不到这条线&#34; A.金币和金条&#34;。 dat.DocumentNode.InnerHtml
返回相同的内容,因此没有文件写入测试文件夹。但是如果我点击&#34; Inspect element&#34;我可以看到所有信息。而不是&#34;查看来源&#34;。
如何使用HtmlAgilityPack获取该行?
答案 0 :(得分:1)
您无法在源代码中看到它的原因是因为您首先下载页面后,您在浏览器中通过javascript(xhr)加载了您要查找的数据。 HtmlAgiligyPack只是一个HTML解析器,不支持运行javascript和加载其他资源。还有其他方法可以做到这一点,但您需要使用其他工具。这可能是一个很好的起点: