HTMLAgilityPackはAJAXコンテンツを読み込み

ajax asp.net c# html-agility-pack winforms

質問

ac#webformsプロジェクトでHTMLAgilityPackを使用してWebページをスクラップしようとしています。

これを行うために私が見たすべてのソリューションはWebBrowserコントロールを使用しています。しかし、私が決定できるものから、これはWinFormsプロジェクトでのみ利用可能です。

現在、このコードで必要なページを呼び出しています:

var getHtmlWeb = new HtmlWeb();
var document = getHtmlWeb.Load(inputUri);
HtmlAgilityPack.HtmlNodeCollection nodes = document.DocumentNode.SelectNodes("//div[@class=\"nav\"]");

WebBrowserコントロールを使用していると思われるコードの例を次に示します。

var getHtmlWeb = new HtmlWeb();
var document = getHtmlWeb.Load(inputUri);
HtmlAgilityPack.HtmlNodeCollection nodes = document.DocumentNode.SelectNodes("//div[@class=\"nav\"]");

一度AJAXが読み込まれたら、どのようにページを取得するかについての任意の提案/ポインタは、評価されます。

受け入れられた回答

HTMLAgilityPackを使用すると、HTML自体を介して読み込まれたコンテンツをスクラップすることしかできないようです。したがって、AJAX経由でロードされたものはHTMLAgilityPackには表示されません。

可能な限り最も簡単なオプションは、Firebugなどのブラウザベースのツールを使用して、AJAXによってロードされるデータのソースを判断することです。次に、ソースデータを直接操作します。これに加えて、大きなデータセットを削ることができるという利点もあります。




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ