在我看来,在这个时间点,一个工具就会升级为支配地位,因为这个过程似乎足够通用:指向一个起始URL,与其表单和脚本交互,按照链接,下载数据。冲洗,重复。虽然我总是在构建临时应用程序时获得一定的满足感,以便在我的硬盘上获得几百个文档,我想知道我是不是只是重新创建了这个轮子。
我承认我没有尝试像Automation Anywhere这样的商业产品,但是因为我正在努力做一个我真正喜欢做的事情,分析数据而不是检索它,我希望有智慧这里的人群可以指出我一个明确的讨论方向。只是有太多的怪癖才能拥有单一工具适合几乎所有的情况吗?
让我澄清或复杂一点 - 我已经看过许多浏览器“宏”类工具,比如iRobot,iOpus,发现它们很慢。对于非常大的文档集合,我想在集群/云上运行爬虫,所以我不确定它们在该环境中如何工作。对于我的用例,假设我想
一个例子可能是这个网站,来自美国人口普查(有更有效的方法从他们那里获取数据,但网站的风格是数据量和导航的一个很好的例子):
http://factfinder2.census.gov/faces/nav/jsf/pages/searchresults.xhtml?ref=addr&refresh=t
答案 0 :(得分:2)
由于它在软件世界中往往有些灰色,因此这些工具似乎很难出现。
在类似领域正在开展大量工作,例如通过无头浏览器(如您提到的iRobot和iOpus)进行自动化站点测试。我看到Selenium也提到了很多,并且有一些使用Apple Webkit的有趣工具,如phantomjs,但我无法评论他们的速度或"云能力"。
最近获得重大关注的有趣选项可能是node.js javascript运行时。我检查的最后一个(6个月前)有一些项目在使用节点进行抓取,实现了一个高度轻量级的JavaScript解释浏览器。 ...而且我相信云已有节点选项。
然而,AFAIK,最快的刮刀仍然是那些不能解释javascript的人,并且依赖于开发人员对http请求的老式预分解。
答案 1 :(得分:2)
Apache Nutch是一个非常强大的抓取工具:
当然,它是用Java编写的,但是如果你熟悉C#那么Java应该不是那么陌生。有些人对Nutch的复杂性表示担忧,但对于任何正在进行严重爬行的人来说,了解Nutch的注意事项要比构建类似的网络爬虫要容易得多。