只是好奇:您觉得如何成为最近创建自动屏幕抓取的最佳工具? .Net Agility包是一个不错的选择吗?你如何抓取使用大量AJAX的网站?
答案 0 :(得分:7)
我发现如果页面有一个非常静态的布局,那么HTML Agility Pack非常适合获取我需要的所有数据。我没有碰到一个它无法处理的单个页面,没有得到我想要的结果。
如果您发现该页面使用大量动态代码进行渲染,那么您将不得不做的不仅仅是下载页面,您必须实际执行它。
要做到这一点,你需要像WebKit .NET库(WebKit rendering engine周围的.NET包装器)这样的东西,它允许你下载页面并实际执行Javascript。然后,一旦您确定文档已完全呈现,您就可以获得页面详细信息。
答案 1 :(得分:4)
对于我使用的基础知识:
HttpWeb*
(初步测试显示速度提高了约25%)。我还没有启用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和维护头痛。
在这方面,请查看名为Bobik(http://usebobik.com)的抓取解决方案。我在http://zscraper.wordpress.com/2012/07/03/a-comparison-shopping-android-app-without-backend/撰写了一篇关于它的文章。
希望这有帮助。