複数の企業のキャリアページをスクレイピングする必要があります (許可を得て)。
何を使用するかを決定する際の重要な要素
- 毎日約2000ページをスクレイピングするので、かなり高速なソリューションが必要です
- これらのページの一部は、ページが読み込まれた後に ajax を介してデータを取り込みます。
- 私の webstack は、MySql などを使用した Ruby/Rails です。
- 以前、scrapy(python) (+ ajax 対応ページ用の Selenium) を使用してスクレイパーを作成しました。
私の疑問
- Python を使用するか (つまり、scrapy + Selenium、これが Python の最良の代替手段だと思います)、代わりに Ruby を使用するか (私のコードベース全体が Ruby であるため) を選択するか、私は混乱しています。
- Scrapy + Selenium はしばしば遅いですが、Ruby にはより高速な代替手段がありますか?(これにより決定が容易になります) Ajax をサポートする最も人気のある Ruby の代替手段 Loaded pages はWatir のようです誰もその速度についてコメントできますか? また、他のルビーの代替手段はありますか (例: Mechanize/Nokogiri + Ajax Loaded pages 用の何か)
編集
最終的に Watir-webdriver + Nokogiri を使用して、データを保存しながらアクティブ レコードを利用できるようにしました。Nokogiri は、データの抽出において Watir-webdriver よりもはるかに高速です。
Scrapy の方が高速だったでしょうが、速度のトレードオフは、さまざまな種類の Web サイトを Scrapy で処理する際の複雑さのトレードオフほど重要ではありませんでした (たとえば、いくつかのターゲット サイトで ajax 駆動の検索を行う必要があります)。
うまくいけば、これは誰かを助けます。