C#AJAX或Java响应HTML抓取

在C#中有没有办法获得AJAX或Java的输出? 我想要做的是抓住网页上的项目细节,但网页不会将其加载到原始来源。 有没有人有一个很好的教程或一个好的开始?

例如,我想从http://www.madisonhonda.com/Preowned-Inventory.aspx#layout=layout1获取所有车辆列表

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

没有理由你不能通过J#从原始页面制作的C#发出相同的Web请求。 根据网站的体系结构,这可能难以从使用查询字符串参数构建正确的URL(简单)到模拟具有大量页面状态(硬)的post。 响应内容很可能是XML或JSON内容,而不是HTML DOM,如果您正在抓取数据将是一个加号。

如果通过ajax调用通过javascript修改DOM,并且此修改的数据是您要捕获的内容,则使用标准.NET WebClient将无法正常工作。 您需要使用WebBrowser控件以便它实际执行脚本,否则您将只下载源代码。

很久以前我写了一个VB应用程序屏幕刮金融网站,并使它可以启动多个这些“收割机”屏幕刮刀。 这可能会减轻加载数据的时间段。 我们每天可以进行数千次刮擦,其中多个在多个盒子上运行。 每个收割机都从存储在数据库中的信息中获取行进命令,例如接下来要获得的客户以及刮取所需的内容(余额,交易历史等)。

就像迈克尔上面说的那样,制作一个带有WebBrowser控件的简单WinForms应用程序。 您必须捕获DocumentComplete事件。 这应该只在网页完全加载时触发。 然后看看这篇文章 ,概述了如何做到这一点。

使用Html Agility Pack。 它允许下载.html并通过XPath进行抓取。

请参见如何使用HTML Agility包