gpt4 book ai didi

c# - HTML 屏幕抓取 - 并非所有元素都在 HttpWebResponse 中

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

我目前正在尝试使用以下代码进行屏幕抓取:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
HttpWebResponse theResponse = (HttpWebResponse) request.GetResponse();
using (StreamReader reader = new StreamReader(theResponse.GetResponseStream(), Encoding.UTF8))
{
string s = reader.ReadToEnd();
}

但是,我关心的数据(HTML 表格)不是结果的一部分。当我右键单击页面和 ViewSource 时,我也没有看到我关心的 HTML 表格 - 但是当我使用 Firebug 检查它时,我确实在 DOM 中看到了它。

它似乎也不是通过ajax加载的。

那么 - 是否有另一种方法,即使用 C# 来获取存在于 Developer Tool View 中的 DOM,而不是 ViewSource 结果?

很遗憾,此页面未公开,因此我无法粘贴 URL。

最佳答案

It doesn't seem to be loaded via ajax either.

您无需使用 AJAX 即可将数据动态添加到 DOM。您完全可以使用标准的 javascript。

要抓取此类页面,您需要一个处理 javascript 的抓取器。 WebBrowser WinForms 中的控件就是这样做的。它允许您加载网页并探索 DOM,就像您在 FireBug 中所做的那样(除了快照来自 IE,因为 WebBrowser 只是 IE 的包装器)。

但由于 WebBrowser 控件并非设计用于多线程环境(例如 Web 应用程序),您将不得不使用第三方库来完成该抓取任务。

关于c# - HTML 屏幕抓取 - 并非所有元素都在 HttpWebResponse 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11156558/

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