5

複数の企業のキャリアページをスクレイピングする必要があります (許可を得て)。

何を使用するかを決定する際の重要な要素

  1. 毎日約2000ページをスクレイピングするので、かなり高速なソリューションが必要です
  2. これらのページの一部は、ページが読み込まれた後に ajax を介してデータを取り込みます。
  3. 私の webstack は、MySql などを使用した Ruby/Rails です。
  4. 以前、scrapy(python) (+ ajax 対応ページ用の Selenium) を使用してスクレイパーを作成しました。

私の疑問

  1. Python を使用するか (つまり、scrapy + Selenium、これが Python の最良の代替手段だと思います)、代わりに Ruby を使用するか (私のコードベース全体が Ruby であるため) を選択するか、私は混乱しています。
  2. Scrapy + Selenium はしばしば遅いですが、Ruby にはより高速な代替手段がありますか?(これにより決定が容易になります) Ajax をサポートする最も人気のある Ruby の代替手段 Loaded pages はWatir のようです誰もその速度についてコメントできますか? また、他のルビーの代替手段はありますか (例: Mechanize/Nokogiri + Ajax Loaded pages 用の何か)

編集

最終的に Watir-webdriver + Nokogiri を使用して、データを保存しながらアクティブ レコードを利用できるようにしました。Nokogiri は、データの抽出において Watir-webdriver よりもはるかに高速です。

Scrapy の方が高速だったでしょうが、速度のトレードオフは、さまざまな種類の Web サイトを Scrapy で処理する際の複雑さのトレードオフほど重要ではありませんでした (たとえば、いくつかのターゲット サイトで ajax 駆動の検索を行う必要があります)。

うまくいけば、これは誰かを助けます。

4

2 に答える 2

1

Google が公開しているこのガイドMaking AJAX Applications Crawlableを確認してください。このガイドでは、一部の Web サイトがサポートする AJAX クロール スキームについて説明しています。

URL のハッシュ フラグメントを探します#!。これは、サイトが AJAX クロール スキームをサポートしていること、および URL がわずかに変更されたときにサーバーがページの HTML スナップショットを返すことをクローラーに示します。

フルスペック

于 2013-10-01T02:46:44.203 に答える