在 Rails 应用程序中使用 Watir-Webdriver 的多个无头 Firefox 实例



我有一个简单的rails应用程序,用于抓取网页。控制器调用抓取工具实用程序,其中我使用 watir-webdriver 在无头模式下使用 firefox。应用程序工作并正确返回结果。我调用应用程序的方式是这样的:

http://somedomain.com:3000/scrapers.json?session=1349426645_562&l=test

它返回一个 JSON 字符串。

刮板大约需要 15 秒才能完成。当一个请求正在进行时,当我尝试启动另一个请求时,该请求将排队,直到前一个请求完成。我不确定这是对轨道应用程序端的限制,还是对使用 Xvfb 的 watir-webdriver 或无头宝石的限制。

任何指针都会有所帮助。

谢谢斯里达尔

有更好的屏幕抓取库,例如机械化。实际上,有些应用程序仅用于抓取。

我发现我可以使用CGI模块来完成我的工作。由于我不需要 rails 应用程序,所以我使用 ruby CGI 调用 ruby 脚本并通过 URL 传递参数。我还可以使用此方法以非阻塞方式启动多个实例。为了做到这一点,我不得不将我的控制器重写为一个独立的 ruby 程序。

最新更新