ruby - 用于抓取的 Node.js 或 Ruby

标签 ruby ruby-on-rails-3 node.js web-scraping screen-scraping

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

  1. 是否可以使用 Ruby 和/或 Node 来抓取动态内容?如果是这样,应该具体使用哪些工具?
  2. 如果多个用户要从多个网站抓取数据,您会推荐使用哪种语言?
  3. 稍微不相关的一点,是否可以将 Node 和 Rails 结合起来?

提前致谢!

最佳答案

您可以利用 capybara gem 使用 ruby​​ 抓取 javascript 网站。

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

当您使用 capybara 时,请务必使用支持 javascript 的驱动程序,例如 selenium 或 capybara-webkit。我今天的司机是闹鬼。

their readme 中有一些关于如何在远程站点上使用 capybara 的说明。 .

Node 与 Ruby 是一个非常开放的问题。我在这里的回答是建议使用 Ruby,因为这是我的经验和偏好。 “结合”它们可能意味着很多事情,它们可以协同使用,各有所长。

关于ruby - 用于抓取的 Node.js 或 Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14512364/

相关文章:

ruby-on-rails - 如何在 spree 管理面板中添加新标签?

javascript - 如何在写入时拆分 WriteStream?

ruby-on-rails - 如果页面有 404 状态,rails 添加 css 类

ruby - method_missing in "Programming Ruby"在我头上

ruby-on-rails - 在 postgres heroku rails 3 应用程序上获取类名?

node.js - 单元测试快速路由器

javascript - 如果在服务器(nodeJS)上运行,此 JavaScript 代码的安全性如何?

ruby-on-rails - Ruby - 从哈希中删除值

ruby - ` (a ||= []) << 1 ` 与 ` (i ||= 0) += 1 `

ruby-on-rails-3 - 使用 rails 3 中的表单按钮覆盖 response_to 格式