gpt4 book ai didi

c# - 如何使用 HtmlAgilityPack 获取动态加载的内容

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:06 32 4
gpt4 key购买 nike

我试图使用 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");
}
}

如果我右键单击页面并单击“查看源代码”,我看不到“A. Gold Coin and Bullion”这一行。 dat.DocumentNode.InnerHtml 返回相同的内容,结果没有文件写入测试文件夹。但是如果我点击“检查元素”而不是“查看源代码”,我可以看到所有信息。

如何使用 HtmlAgilityPack 获取该行?

最佳答案

您在源代码中看不到它的原因是因为您要查找的数据是在页面初始下载后通过浏览器中的 javascript (xhr) 加载的。 HtmlAgiligyPack 只是一个 HTML 解析器,不支持运行 javascript 和加载其他资源。还有其他方法可以做到这一点,但您需要使用其他工具。这可能是一个很好的起点:

Load a DOM and Execute javascript, server side, with .Net

关于c# - 如何使用 HtmlAgilityPack 获取动态加载的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41983000/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com