Html Agility Packで実際のソースを使ってJavaScriptコードを取得する方法

c# html-agility-pack javascript parsing xpath

質問

私はfirebug.iで検査するときコードとは異なるHTML Agilityパックを使用しているWebサイトのソースを取得していますが、多くのものを検索しましたが、まだ何をすべきか分かりません。私はどのようにそのHTMLでjavascriptコードを取得する方法。私は私のブラウザで私はまだソースに沿ってJavascriptコードを取得することはできませんJavaScriptを無効にするとき。使っています

string url="";
HtmlDocument doc = new HtmlDocument();
                WebClient client = new WebClient();
                html = client.DownloadString(url);
                doc.LoadHtml(html);

JSコードを取得するためのリクエストと応答メソッドが必要なのかどうかをソースに伝えてください。

受け入れられた回答

@alecxeの答えを拡張するには、Selenium *を使って実際のブラウザのようにターゲットページをロードし、その結果をHtmlAgilityPackに渡して処理させます:

using OpenQA.Selenium;

.....

IWebDriver driver = new PhantomJS.PhantomJSDriver();
driver.Navigate().GoToUrl(url);
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(driver.PageSource);

代わりに、Seleniumを直接使用してクエリ(XPathまたはCSSセレクタ)を実行することもできます。たとえば、次のようにします。

using OpenQA.Selenium;

.....

IWebDriver driver = new PhantomJS.PhantomJSDriver();
driver.Navigate().GoToUrl(url);
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(driver.PageSource);

*)まずSeleniumをダウンロードする必要があります。また、PhantomJS、Firefoxなどのドライバもダウンロードする必要があります。セレンは、 NuGetからプロジェクトに簡単にインストールできます。


人気のある回答

そのためには、実際のブラウザが必要です。 seleniumの助けを借りてブラウザを自動化することを検討してください(ヘッドレスにすることもできます - PhantomJS参照してください)。

参照:




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