いくつかの Web サイトをクロールしてデータをスクレイピングするアプリケーションを作成しています。これを行うために、Ruby、Curl、および Nokogiri を使用しています。ほとんどの場合、これは簡単で、URL に対して ping を実行して HTML データを解析するだけで済みます。セットアップは完全に正常に機能します。
ただし、一部のシナリオでは、Web サイトは一部のラジオ ボタンへのユーザー入力に基づいてデータを取得します。これにより、サーバーからさらにデータを取得する JavaScript が呼び出されます。生成される URL と投稿されるデータは、JavaScript コードによって決定されます。
使用することは可能ですか:
HTMLページでJavaScriptを実行するかどうかを判断できるJavaScriptライブラリとこの設定はありますか?
別のライブラリを使用する以外に、HTML ライブラリと JS ライブラリが通信するための統合または方法はありますか? たとえば、ボタンがクリックされた場合、Nokogiri は JavaScript を呼び出す必要があり、JavaScript は Nokogiri を更新する必要があります。
私のアプローチが最善ではないように思われる場合は、Ruby を使用して Web 上にクローラー + スクレーパーを構築することをお勧めします。
編集: コードに V8 エンジンが組み込まれているため、therubyrace を使用してポイント 1 が可能であるように見えますが、2 に代わるものはありますか?