複数の会社のキャリアページをスクラップする必要があります。何をすべきかを決定する際にajaxを有効にしたウェブページを掻き立てる
重要な要因は、私は、ページがロードされた後、これらのページの中には、AJAXを介してデータを取り込むちゃんと速い ソリューション
- を使用しています。
- 私のwebstackはMySqlなどRuby/Railsです。
- 以前はscrapy(python)(+ ajaxが有効なページではSelenium)を使用してスクレイパーを作成しました。
私の疑問
- 私は(すなわちscrapy +セレン、私はこれはPythonで最善の選択肢だと思う)のpythonで行く、またはその代わりに私の全体としてのルビー(で何かを好むべきかどうか混乱していますコードベースはルビーにあります)。
- Rubyには早い選択肢があります(これにより決定がより簡単になります)Ajaxをサポートする最も人気のあるRubyの代替ページWatir誰でもそのスピードについてコメントできますか?また、他のRubyの選択肢は、(例えばMechanizeの/鋸山 + Ajaxのための何か他のもの読み込まれたページ)
EDITある
、ワチール-webdriverを+鋸山を使用して終了私ができるように、アクティブなレコードを活用してデータを保存する。 NokogiriはWatir-webdriverよりもデータを抽出する方がはるかに高速です。
治療は速くなりましたが、スピードのトレードオフは、治療中の異なる種類のウェブサイトを扱う際の複雑さのトレードオフほど重要ではありませんでした(例えば、いくつかのターゲットサイトでのajax駆動検索、 。
これは誰かを助けてくれることを願っています。
これはあなたのユースケースに合うが、Mechanizeの/鋸山とAJAXページに対して、何を行うことができますことは、そのページごとに5〜10秒を更新しているではないかもしれません。理想的ではなく、必要な頻度に応じて、それらのJS呼び出しを通じてロードされるすべてのデータを取得できます。 –
あなたが言っていることが正しいとは私は完全には分かりません。私は機械化/ Nokogiriはjavascriptインタープリタを持っていないと思う(http://stackoverflow.com/questions/3852678/can-mechanize-read-ajax-ruby) –
彼らはしませんが、データが間隔の後にテーブルにプッシュされても。そのデータがテーブルに残っている限り、単にページを再取得すれば、それを掻き集めることができます。ブラウザから、AJAXを介してページのデータが読み込まれた後で、ページが更新されてもデータが残っていることを確認するだけで済みます。それは、メカ/ノコギリを掻き取るために使用できるものですが、そのページを再ロードする必要があります。 –