0

解析するN 個のURLのセットを指定して、指定された PhantomJS (実際には CasperJS) スクリプトに対してN回のシェル呼び出しを実行する RoR アプリケーションがあります。

そう、

今、私はこのようなものを持っています:

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

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

私は今までこれをやったことがありません。RoR/Ruby アプリケーションからシェル スクリプトを起動しています。では、なぜ PhantomJS を RoR と組み合わせて使用​​するのでしょうか?

私は基本的に、解析が必要な URL を受信し続ける API (RoR アプリ) を持っています。これらは、ヘッドレス ブラウザ方式で解析する必要があります。ページは実際にレンダリングする必要があります (そのため、Nokogiri やその他の HTML パーサーは使用しません)。

これを本番環境のパフォーマンスに適用することを懸念しています。先に進む前に、これを正しく行っているか、またはより良い方法で行うことができるかを知りたいです。

4

1 に答える 1

0

私も同じことを考えた可能性はありますが、ヘッドレス ブラウザーを使用していても、サーバーに必要な速度と帯域幅が気になります。私は Python と組み合わせて capser を使用していますが、私にとっては非常にうまく機能します。私はキャスパースクリプトを起動してstdoutが吐き出すのを読みましたが、あなたが話しているように、その場で解析およびスクレイピングしません。大丈夫だと思いますが、理想的には、人々が検索したときに結果のデータベースがキャッシュされていることが理想的です。非常に基本的な検索であれば問題ないかもしれませんが、わかりません。

于 2013-10-18T11:16:57.653 に答える