0

我有一个 RoR 应用程序,它给定一组N个要解析的 URL,将为给定的 PhantomJS(实际上是一个 CasperJS)脚本执行N个 shell 调用。

所以,

现在我有这样的事情:

urls_to_parse = ['first.html', 'second.html',...]

urls_to_parse.each do |url|
  parse_results = \`casperjs parse_urls.js '#{url}'\`
end

我以前从来没有这样做过。从 RoR/Ruby 应用程序启动 shell 脚本,所以我想知道这是否是一个好方法以及我有什么替代方法。那么,为什么我将 PhantomJS 与 RoR 结合使用呢?

我基本上有一个 API(RoR 应用程序),它不断接收需要解析的 url。它们需要以无头浏览器的方式进行解析。该页面实际上需要呈现(这就是我不使用 Nokogiri 或任何其他 HTML 解析器的原因)。

我担心将其提高到生产性能上,在继续之前,我想知道我是否正确执行此操作,或者我可以以更好的方式做到这一点。

4

1 回答 1

0

有可能我想过做同样的事情,但即使使用无头浏览器,我也会非常担心您的服务器需要具备的速度和带宽。我将 capser 与 Python 结合使用,它对我来说效果很好。我从触发 casper 脚本中读取了标准输出,但我不会像您所说的那样即时解析和刮擦。我想这没关系,但理想情况下,当人们搜索时,你已经有一个缓存的结果数据库。也许如果这是一个非常非常基本的搜索,你会没事的,但我不知道。

于 2013-10-18T11:16:57.653 回答