2011-02-01 2 views
3

1分あたり1000を超えるXHTMLドキュメントをダウンロードして実行する(つまり、JavaScriptを評価し、DOMを評価する)にはどうすればよいですか?ブラウザ環境で1000+ページ/分を実行する

いくつかのアウトライン/制約:ダウンロードする

  • URLが異なるサーバ上にあります。
  • 私はトラバースする必要があります。理想的には結果のDOMを変更する必要があります。
  • グラフィックのレンダリングに興味がありません。
  • 帯域幅は問題ではありません。
  • 大規模なハードウェアの並列化が問題になります。
  • 生産環境は.NETです。

私はそのページをダウンロードすることに心配していません。私は、実際にページを出すことがボトルネックだと推測します。 .NETにはWebブラウザオブジェクトが組み込まれていますが、単一のマシン上でスケールアップするかどうかはわかりません。また、.NETは絶対的な要件ではありませんが、ここでは統合が容易になります。私はに関するご意見/ポインタのために感謝されると思います

これを行うことが最も適しているブラウザAPI
  • 行くための正しい方法ブラウザです - 多分そこに最も重要な部分であるJavascriptを実行するために、より軽量な方法は、(...しかしDOMを提供していない)のか?
  • オープンソースでも商業的にも、既存の製品/サービスとは何ですか?
  • 私は1台のマシン(3msのChromeレンダリング商用の誰でも)で処理することができると思いますか? 1が発生する可能性がある
  • どれ落とし穴...

は、事前に.NET用ヘッドレスブラウザのいずれかで

/デヴィッド・

+0

スタート。任意のJavaScriptコードは、通常のDOM操作を行うことができると想定する可能性が非常に高くなります。 – Pointy

+0

ああ、スループットは間違いなくこれらの「ページ」のメトリックとJavaScriptコードの性質に依存します。 – Pointy

+0

ロードテスターのように、これは時々実行されるものなのでしょうか、それとも毎日実行されるのでしょうか? – mbeckish

答えて

4

ルックをありがとう - 彼らはより高速になりますBrowserControlはグラフィック表示をレンダリングする必要がないためです。

私は、これはあなたが毎分1000ページを実行できるようになりますかどうか知りませんが、コントロールよりもはるかに高速でなければなりません。

Hereは1です。

Hereは、HtmlUnitをヘッドレスブラウザとして使用する方法についてのブログ記事です。

そしてan SO questionについてはヘッドレスブラウザです。

+0

その時点では、1000ページ/分は単なるコンピュータ電源の問題です。それは複数のサーバーに拡張できる必要があります。 –

+1

+1現在、HtmlUnitを.Netアセンブリに変換して、IKVMを使用して、JavaScriptベースのWebクエリインターフェイスから数百のクエリをスクラップすることができます。 1時間に1000ページを維持するのは難しいですが、DOMを変更する上でどれだけの制御があるかわかりませんが、それ以外の場合は、その規模でJavaScriptを模倣する唯一の信頼できるソリューションです。 WATINやSeleniumのようなツールは、遅すぎたり不正確になります。 – wllmsaccnt

0

私はNode.jsのは、あなたが望むものの多くを行うと、あなたは.NETソリューションに結婚していない場合は速いそれを行うことができると思います。それは間違いなくdomの実装を持っています。

1

私は、約7,800のURLを約5分で処理するアプリケーションを実装しています(URLをダウンロードし、コンテンツを解析し、特定のデータを探し、探しているものがそのページ。

この特定のアプリケーションの実行には26〜30分かかることがありましたが、コードをTPL(.NET v4.0のタスク並列ライブラリ)に変更することで、わずか5で実行されます。コンピュータはDell T7500ワークステーションデュアルクアッドコアXeonプロセッサ(3 GHz)、24 GBのRAM、Windows 7 Ultimate 64ビット版で動作します。

WebClientストリーム、StreamReaderオブジェクトをParallel.ForEach()ループ内で使用するだけで非常に高速です。

あなたが探している正確な解決策ではないかもしれませんが、私がここに見る他の投稿のほとんどとは異なり、実際には「1,000ページ/分」[以上]を処理します。思考のための

食べ物...あなたは、ブラウザでそれをしない場合は、本当に、本当に大きなコンピュータ:-)を購入することで、ページが正しく動作することを保証するために、本当に難しいことになるだろう

関連する問題