【发布时间】:2016-01-21 12:21:48
【问题描述】:
我有一个使用 AJAX 查询显示一些数据的网页。我需要在 C# 程序中解析其中的一些数据。
问题是,当我查看网页的源代码时,它没有显示数据,因为这是由 AJAX 脚本自动生成并修改 DOM。
如果我选择网页上的所有内容并使用 Chrome 执行“检查元素”,我将拥有完整的 HTML 代码,其中包含我想要提取的数据,这些数据位于各种表格中。
我尝试的是做一个webBrowser1.Navigate("www.site.com"),然后在我的webBrowser1_DocumentCompleted() 事件中,我正在这样做:
var name = webBrowser1.Document.GetElementById("table_1_r_7_c_2");
问题是webBrowser1 没有返回完整的 HTML 代码,因为某些代码是由 AJAX 查询生成的。
有谁知道我如何在 C# 中实现这种行为?
【问题讨论】:
-
你能告诉我们你实际尝试了什么吗?这种方式更容易提供帮助
-
为什么不复制 JSON 请求并解析响应?
-
尝试使用
WebBrowser而不是简单的请求。WebBrowser实际上执行 AJAX 并且通常表现得像 IE 浏览器。页面“加载”(谎言)后,您可以等待以各种方式下载完整的 html。 -
我尝试的是做一个 webBrowser1.Navigate("www.site.com"),然后在我的 webBrowser1_DocumentCompleted() 事件中,我这样做:var name = webBrowser1.Document .GetElementById("table_1_r_7_c_2");问题是 webBrowser1 没有返回完整的 html 代码,因为一些代码是由 ajax 查询生成的
标签: c# html ajax web-scraping