11
私はASP.NETとC#プロジェクトの一部です。私たちはasp.netポータルのGoogle検索エンジンをフレンドリーにしようとしています(https://developers.google.com/webmasters/ajax-crawling/)。 GoogleのサイトのWebページは動的に生成され、DOMはJavaScriptで変更されるため、Google検索エンジンがリクエストを送信するときにNHTMLを使用してスナップショット(サーバー側)を生成します。 HTMLスナップショットが生成されますが、ページにスクリプトエラーがあると、部分的にレンダリングされたページが返されます(ページJavaScriptによって変更されるコンテンツは部分的にレンダリングされます)。ページはブラウザで完全に機能します。NHTMLUNITにページJavaScriptのエラーを無視させ、スクリプトを続行させる方法はありますか?
私は、次のオプションに
ThrowExceptionOnScriptError = false,
ThrowExceptionOnFailingStatusCode = false
しかし、運を試してみました。
強制的にNHtmlUnitがページエラーを無視して実行を継続する方法はありますか?
次
は、私は私が間違っている場合は申し訳ありませんが、JavaScriptを有効にしなかった気づいコード// Create a webclient.
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_17)
{
ThrowExceptionOnScriptError = false,
ThrowExceptionOnFailingStatusCode = false
};
webClient.WaitForBackgroundJavaScript(5000);
// Load the Page with the given URL.
HtmlPage htmlPage = webClient.GetHtmlPage(url);
// Return the page for the given URL as Text.
return htmlPage.WebResponse.ContentAsString;
@ RAMのケースについてはわかりませんが、私は有効になっています。問題は、ヘッドレスブラウザ内で実行されるため、jQueryの問題ではなく[N] HtmlUnitの問題であるかどうかはわかりません。 HtmlUnitが提供していないもの(ウィンドウオブジェクトやブラウザ自体が提供するものなど)に依存する可能性があります。 – Allov
はいJavaScriptを有効にしました。ページ内のJavaScriptコードによって例外がスローされ、NHTMLUNITの実行が停止され、ページが部分的にレンダリングされます。同じJavaScriptがブラウザで動作し、完全なページをレンダリングします。 – RAM