2012-11-16 9 views
5

HTTPWebRequestでWebページを取得して、そのページにあるすべてのjavascriptcodeをajax呼び出しとともに実行し、結果を文字列に保存する方法はありますか?C#HTTPWebRequestでWebページを引っ張り、サイトからJavaScriptを実行

jsコードでいくつかの画像が生成され、jsスクリプトが実行される前に画像がWebページにないウェブサイトを解析したいとします。

私はこれの解決策をWebで検索しましたが、このような答えはありませんでした。代わりにWebブラウザを使用してください。これは私の選択肢ではありません。

挨拶

+1

WebBrowserクラスを使用するのはなぜオプションではないかについて詳しく説明できますか? – alexn

+0

http://notions.okuda.ca/2009/06/11/calling-javascript-in-a-webbrowser-control-from-c/ alexnが示唆していることについて詳述しています。 * Webブラウザを使用できない場合、* WebBrowserオブジェクトを使用できないかどうかはあなたのQからは分かりません。 –

+0

WebBrowserは遅く、時にはバグがあり、スピードが問題です。 – maddo7

答えて

2

これは、受信するデータの部分を多く制御するC++ httpシステムで行うことができますが、それは本当に答えではないと思います。 ..

webkit into your appを入れて、そこからイベントを実行しないようにしましょう。ダウンロードが開始されて終了したときに通知するイベントがいくつかあります。

+0

私はこれを行う簡単かつ簡単な方法はWebBrowserコントロールだと思います。彼にとっては.NET WebKitラッパーを使用するのが一番良い方法です。 –

0

この大いに必要な需要を満たすためにしようとしているときに、私が見つけたとして確かに、ことはできません。 Javascriptは実行されますが、Ajax呼び出しは行われません。

私が解決した解決策は、コードビハインドファイル(C#コード)を使用してAjax呼び出しが同期させるすべてのデータを取得し、スクリプトタグを使用してコードビハインド変数をJavascript変数に割り当て、 Javascriptはその作業を行います(動的要素の構築など)

+0

とあなたはajax呼び出しなしでjavascriptを実行するために何を使いましたか? – maddo7

+0

Sync Javascriptは、どのWebリクエストでも実行されます。これは、非同期コード(ajax呼び出し、コールバック)が失敗する場合にのみ発生します。 質問に答えるにはASP.NETで 'WebRequest'クラスを使用しました。 –

1

興味深いと思ったのでちょっとした研究をしました。あなたが必要とするように見えるPhantom.jsというものが見つかりました。それを確認してください:

+0

興味深いプロジェクトですが、C#ではより自立していないようです。 –

関連する問題