Node.js或ruby刮

我试图做一个应用程序,需要从多个网站抓取大量的数据。 我尝试使用Ruby来抓取网站,但是像Mechanize这样的gem似乎只能抓取静态页面而不是dynamic内容。 我有几个问题关于哪些这些语言,或任何其他语言,我应该使用这个项目(我正在考虑使用节点,因为应用程序中的相当一些元素必须实时)。

  1. 是否有可能使用Ruby和/或节点刮dynamic内容? 如果有的话,应该使用哪些工具?
  2. 如果多个用户将要从多个站点抓取,你会推荐使用哪种语言?
  3. 在稍微不相关的说明中,是否可以将Node和Rails结合起来?

提前致谢!

       

网上收集的解决方案 "Node.js或ruby刮"

你可以利用capybaragem来使用ruby来抓取javascript网站。

这样做的好处是可以通过selenium驱动使用实际的浏览器,如Firefox,Chrome和IE。 或者你可以使用无头浏览器,如webkit(通过capybara-webkit)或phantomjs(通过poltergeist)。

当你使用水豚,只要确保使用一个JavaScript启用驱动程序,如selenium或水豚-webkit。 我当时的司机是个极端主义者。

有一些关于如何在自述文件中使用远程站点的水豚的说明。

Node和Ruby是一个非常开放的问题。 我的答案是build议Ruby,因为这是我的经验和偏好。 “结合”可能意味着很多东西,它们可以用于音乐会,各自发挥自己的优势。

当你说机械化不能删除dynamic内容的时候,你的确意味着要弄清楚哪些Ajax请求需要制作并做出来,这是一个更多的工作。 另一方面,一旦你通常得到一个很好的JSON响应,很容易处理。 机械化也比完整的浏览器解决scheme快得多,所以我认为通常值得额外的工作。

就Node而言,有潜力,也许曾经有一段时间,一些伟大的图书馆将会出现,但是我还没有看到任何可以弥补我想错过的ruby的东西。