我正在尝试制作一个需要从多个网站抓取大量数据的应用程序。我尝试使用 Ruby 抓取网站,但诸如 Mechanize 之类的 gem 似乎只能抓取静态页面而不是动态内容。关于我应该为这个项目使用这些语言中的哪一种或任何其他语言,我有几个问题(我正在考虑使用 Node,因为应用程序中的相当多的元素必须是实时的)。
- 是否可以使用 Ruby 和/或 Node 来抓取动态内容?如果是这样,应该具体使用哪些工具?
- 如果多个用户要从多个网站抓取数据,您会推荐使用哪种语言?
- 稍微不相关的一点,是否可以将 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/