屏幕刮痧

时间:2011-09-21 14:17:59

标签: c# screen-scraping

只是好奇:您觉得如何成为最近创建自动屏幕抓取的最佳工具? .Net Agility包是一个不错的选择吗?你如何抓取使用大量AJAX的网站?

4 个答案:

答案 0 :(得分:7)

我发现如果页面有一个非常静态的布局,那么HTML Agility Pack非常适合获取我需要的所有数据。我没有碰到一个它无法处理的单个页面,没有得到我想要的结果。

如果您发现该页面使用大量动态代码进行渲染,那么您将不得不做的不仅仅是下载页面,您必须实际执行它。

要做到这一点,你需要像WebKit .NET库(WebKit rendering engine周围的.NET包装器)这样的东西,它允许你下载页面并实际执行Javascript。然后,一旦您确定文档已完全呈现,您就可以获得页面详细信息。

答案 1 :(得分:4)

对于我使用的基础知识:

我还没有启用JavaScript,但我打算使用Google's V8 JavaScript Engine。这要求您调用非托管代码,但V8的性能证明了这一点。

答案 2 :(得分:0)

对于自动化屏幕抓取,Selenium是一个很好的工具。有两件事 - 1)安装Selenium IDE(仅适用于Firefox)。 2)安装Selenium RC Server

启动Selenium IDE后,转到您尝试自动执行的站点,并开始记录您在站点上执行的事件。将其视为在浏览器中录制宏。然后,您将获得所需语言的代码输出。

您知道Browsermob使用Selenium进行负载测试以及在浏览器上自动执行任务。

我已经上传了一段我曾经做过的ppt。这可以为您节省大量时间 - http://www.4shared.com/get/tlwT3qb_/SeleniumInstructions.html

在上面的链接中选择常规下载选项。

我花了很多时间搞清楚,所以认为这可以节省一些人的时间。

答案 3 :(得分:0)

最好的工具“这些日子”不仅可以为您提供所需的功能(Javascript,自动化),还可以提供您不需要自己运行的功能......我当然是在暗示使用云服务。这种方法可以节省网络带宽,更快地提供结果(因为它可以比您最终可能开发的自定义解决方案更好地扩展),最重要的是,可以节省您的IT和维护头痛。

在这方面,请查看名为Bobikhttp://usebobik.com)的抓取解决方案。我在http://zscraper.wordpress.com/2012/07/03/a-comparison-shopping-android-app-without-backend/撰写了一篇关于它的文章。

希望这有帮助。