2013-09-30 8 views
5

複数の会社のキャリアページをスクラップする必要があります。何をすべきかを決定する際にajaxを有効にしたウェブページを掻き立てる

重要な要因は、私は、ページがロードされた後、これらのページの中には、AJAXを介してデータを取り込むちゃんと速い ソリューション

  • を必要とする、私は毎日、2000年頃のページをこすることになる

    1. を使用しています。
    2. 私のwebstackはMySqlなどRuby/Railsです。
    3. 以前はscrapy(python)(+ ajaxが有効なページではSelenium)を使用してスクレイパーを作成しました。

    私の疑問

    1. 私は(すなわちscrapy +セレン、私はこれはPythonで最善の選択肢だと思う)のpythonで行く、またはその代わりに私の全体としてのルビー(で何かを好むべきかどうか混乱していますコードベースはルビーにあります)。
    2. Rubyには早い選択肢があります(これにより決定がより簡単になります)Ajaxをサポートする最も人気のあるRubyの代替ページWatir誰でもそのスピードについてコメントできますか?また、他のRubyの選択肢は、(例えばMechanizeの/鋸山 + Ajaxのための何か他のもの読み込まれたページ

    EDITある

    、ワチール-webdriverを+鋸山を使用して終了私ができるように、アクティブなレコードを活用してデータを保存する。 NokogiriはWatir-webdriverよりもデータを抽出する方がはるかに高速です。

    治療は速くなりましたが、スピードのトレードオフは、治療中の異なる種類のウェブサイトを扱う際の複雑さのトレードオフほど重要ではありませんでした(例えば、いくつかのターゲットサイトでのajax駆動検索、 。

    これは誰かを助けてくれることを願っています。

  • +0

    これはあなたのユースケースに合うが、Mechanizeの/鋸山とAJAXページに対して、何を行うことができますことは、そのページごとに5〜10秒を更新しているではないかもしれません。理想的ではなく、必要な頻度に応じて、それらのJS呼び出しを通じてロードされるすべてのデータを取得できます。 –

    +0

    あなたが言っていることが正しいとは私は完全には分かりません。私は機械化/ Nokogiriはjavascriptインタープリタを持っていないと思う(http://stackoverflow.com/questions/3852678/can-mechanize-read-ajax-ruby) –

    +0

    彼らはしませんが、データが間隔の後にテーブルにプッシュされても。そのデータがテーブルに残っている限り、単にページを再取得すれば、それを掻き集めることができます。ブラウザから、AJAXを介してページのデータが読み込まれた後で、ページが更新されてもデータが残っていることを確認するだけで済みます。それは、メカ/ノコギリを掻き取るために使用できるものですが、そのページを再ロードする必要があります。 –

    答えて

    1

    速度が重要な場合は、watir-webdriver gemを使用してPhantomJS(JavaScriptをサポートするヘッドレスブラウザ)を駆動できます。 PhantomJSの任意のページを開き、watir-webdriverが遅すぎてデータを取得できない場合は、レンダリングしたHTMLをNokogiriに渡すことができます。

    はもっと読む

    +0

    まだあなたが言及したリンクを読み上げています。最後のリンクは期限切れのドメインにつながります。更新する必要があります。 –

    +0

    リンクが今すぐバックアップされました –

    +0

    watir-webdriver + nokogiriを使用して終了しましたが、宝石ではありませんでした。 –

    1

    あなたはそれがAJAXクロールスキームいくつかのウェブサイトのサポートについて説明し、 をGoogleが発表され、このガイドMaking AJAX Applications Crawlableをチェックアウトする必要があります。

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

    Full Specification

    +1

    ガイドをお寄せいただきありがとうございます(私がGoogleによって掻き取られたいAJAX対応のアプリケーションを構築する場合に役立ちます)。残念ながら私のターゲットサイトのすべてがこれに従うわけではありません。 –

    関連する問題