1

複数のウェブサイトから大量のデータスクレイピングを必要とするアプリケーションを作成しようとしています。Rubyを使用してWebサイトをスクレイピングしようとしましたが、Mechanizeなどのgemは静的ページのみをスクレイピングし、動的コンテンツはスクレイピングしないようです。これらの言語または他の言語のどれをこのプロジェクトに使用する必要があるかについて、いくつか質問があります(アプリケーションのかなりの数の要素がリアルタイムである必要があるため、Nodeの使用を検討しています)。

  1. RubyやNodeを使用して動的コンテンツをスクレイプすることは可能ですか?もしそうなら、どのツールを具体的に使用する必要がありますか?
  2. 複数のユーザーが複数のサイトからスクレイピングする場合、どの言語を使用することをお勧めしますか?
  3. 少し関係のないメモですが、ノードとレールを組み合わせることができますか?

前もって感謝します!

4

2 に答える 2

6

capybararubyを使用してjavascriptサイトをスクレイピングするためにgemを利用できます。

seleniumこれには、ドライバーを介してFirefox、Chrome、IEなどの実際のブラウザーを使用できるという利点があります。または、webkit(capybara-webkit経由)やphantomjs(poltergeist経由)などのヘッドレスブラウザを使用することもできます。

capybaraを使用する場合は、必ずseleniumやcapybara-webkitなどのjavascript対応ドライバーを使用してください。その日の私の運転手はポルターガイストです。

readmeには、リモートサイトでカピバラを使用する方法についての説明がいくつかあります。

NodeとRubyは、非常に自由形式の質問です。ここでの私の答えは、Rubyを提案することです。それが、私の経験と好みだからです。それらを「組み合わせる」ことは多くのことを意味する可能性があり、それらは協調して使用することができ、それぞれがそれぞれの強みを発揮します。

于 2013-01-24T23:42:06.870 に答える
0

mechanizeは動的コンテンツをスクレイプできないと言うとき、実際には、どのajaxリクエストを作成する必要があるかを判断して作成するのが少し手間がかかることを意味します。その反対側は、一度実行すると、通常、処理しやすい優れたjson応答が得られることです。Mechanizeは、完全なブラウザソリューションよりもはるかに高速であるため、通常は追加の作業を行う価値があると思います。

Nodeに関しては、可能性があり、しばらくするといくつかの優れたライブラリが利用可能になる可能性がありますが、私が見逃したいルビーのことを補うものはまだ見ていません。

于 2013-01-25T02:27:56.193 に答える