C#AJAX或Java响应HTML抓取

C#AJAX或Java响应HTML抓取,c#,C#,在C语言中有没有一种方法可以获得AJAX或Java的输出?我想做的是抓取网页上项目的细节,但是网页不会将其加载到原始源中。有没有人有一个好的教程或者一个好的起点 例如,我想使用Html Agility Pack从获取所有汽车列表。它允许通过XPath下载.html和抓取 请参见如果javascript正在通过ajax调用修改DOM,并且您正试图捕获这些修改后的数据,那么使用标准的.NET WebClient将无法工作。您需要使用一个控件,以便它实际执行脚本,否则您将只是下载源代码 很久以前,我编

在C语言中有没有一种方法可以获得AJAX或Java的输出?我想做的是抓取网页上项目的细节,但是网页不会将其加载到原始源中。有没有人有一个好的教程或者一个好的起点


例如,我想使用Html Agility Pack从获取所有汽车列表。它允许通过XPath下载.html和抓取


请参见

如果javascript正在通过ajax调用修改DOM,并且您正试图捕获这些修改后的数据,那么使用标准的.NET WebClient将无法工作。您需要使用一个控件,以便它实际执行脚本,否则您将只是下载源代码

很久以前,我编写了一个VB应用程序来筛选金融网站,这样你就可以启动多个“harvester”屏幕筛选程序。这可能会缩短加载数据的时间。我们一天可以在多个盒子上进行数千次刮伤。每个收割机都从存储在数据库中的信息中获得行进指令,比如下一步要得到什么客户以及需要刮取什么(余额、事务历史记录等)

正如Michael上面所说,制作一个简单的WinForms应用程序,其中包含WebBrowser控件。你必须抓住这件事。只有当网页完全加载时才会触发。然后查看其中给出了如何操作的概述。

如果您只需要“加载”它,那么您需要了解页面的功能,并尝试自己调用AJAX。Firebug和其他类似工具允许您查看浏览器发出的请求


没有理由不能从C#发出与原始页面从Javascript发出的相同的web请求。根据网站的架构,这可能会有困难,从使用查询字符串参数构造正确的URL(简单)到模拟具有大量页面状态的帖子(困难)。然后,响应内容很可能是XML或JSON内容,而不是HTML DOM,如果您正在抓取数据,这将是一个加号。

这就是我现在使用的,但java不会加载。好的,您有一个好的C#示例吗?我发现了这一点,但没有在C中找到如何实现这一点的示例#请参阅前面提到的
WebBrowser
控件nFreeze的
Document
属性。在客户端脚本处理完AJAX结果之后,您可以通过这个属性访问DOM。你知道一个很好的例子吗?nFreeze对你原来问题的回答会有用的。您将创建一个Windows窗体应用程序,将WebBrowser控件放入窗体中,指示控件加载页面,等待javascript运行,然后使用Document属性访问DOM。是的,除此之外,需要将1000个页面加载到浏览器中,这将花费非常长的时间,我正在寻找一种加载它的方法。好吧,访问DOM的好例子是什么?您是否对此感到困惑?是的,但请记住,对用于修改DOM的任何AJAX请求的响应可能会在
DocumentComplete
事件触发后很长一段时间内出现。感谢Michael和Rob,当我完成后,我会发布整个该死的代码