質問: 私は次のように動作する特定のWebページを削り取ろうとしています。 最初にページが読み込まれ、ページにデータを取り込むために必要なデータを取得するためにJavaScriptが実行されます。私はそのデータに興味があります。 私がHtmlAgilityPackでページを取得した場合、スクリプトは実行されないので、本質的にはほとんど空白なページが得られます。 スクリプトを実行するように強制する方法があるので、データを取得できますか?
回答: あなたはサーバーが何を返すのかを知っています。これはウェブブラウザと同じです。 Webブラウザはもちろん、スクリプトを実行します。 Html Agility Packは、HTMLパーサーのみです.JavaScriptを解釈したり、ドキュメントの内部表現にバインドする方法はありません。スクリプトを実行するには、Webブラウザが必要です。あなたの問題に対する完璧な答えは、完全な "ヘッドレス" Webブラウザです。これは、HTMLパーサ、javascriptインタプリタ、ブラウザDOMをシミュレートするモデルを組み込んだものです。基本的には、それはレンダリングの部分がない限り、Webブラウザです。現時点では、.NET環境内で完全に機能するものはありません。 `WebBrowser`コントロールを使用して、プログラムでコントロールするInternet Explorerで実際にページをロードして実行するのが最善の方法です。これは速くてもかわいいものではありませんが、あなたがする必要があることをします。 また、同様の質問への私の答えを参照してください:これを行うに.NETで利用可能な技術について議論する.NetとDOMをロードし、javascript、サーバー側を実行します。ほとんどの作品は現在存在していますが、あまりにもまだそこにはないか、残念ながら正しい方法で統合されていません。