我有一个RoR应用程序,它给出了一组 N 要解析的URL,将对给定的PhantomJS(实际上是CasperJS)脚本执行 N shell调用。 / p>
所以,
现在我有这样的事情:
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解析器的原因)。
我担心明智地将其提升到生产性能,在开始之前我想知道我是否正确地做到了这一点,或者我能以更好的方式做到这一点。
答案 0 :(得分:0)
我可能会考虑做同样的事情,但即使使用无头浏览器,我也会非常关心服务器需要的速度和带宽。我使用capser与Python结合使用,它对我来说非常好用。我从解雇脚本脚本中读到了stdout spit,但我并没有像你在谈论的那样在飞行中解析和刮擦。我认为这没关系,但理想情况下,当人们搜索时你已经拥有了一个缓存的结果数据库。也许如果这是一个非常基本的搜索,你会没事的,但我不知道。