現実の問題:
私のアプリをHerokuでホストしていますが、筆者の知る限り、GooglebotがHTMLスナップショットを生成してAJAXコンテンツにインデックスを付けるために、HTMLUnitなどのヘッドレス(GUIなし)ブラウザーを実行するためのソリューションを提供できません。
私が提案するソリューション:
まだ行っていない場合は、GoogleのAJAXアプリケーションをクロール可能にするための完全な仕様を読むことをお勧めします。
私が持っていると想像してください:
http://example.com
http://example.com#!tab=TabA&subtab=SubTab3
クライアント側のJavaScriptの場合、onload location.hash
はを受け取り、AJAXを介してTabA、SubTab3コンテンツにロードします。注:ハッシュバン(#!)はGoogle仕様の一部です。
Google App Engine(GAE)でホストされる簡単な「Webサービス」を構築したいと思います。
http://htmlsnapshot.appspot.com?url=http://example.com#!tab=TabA&subtab=SubTab3
(URLパラメータはURLEncodedである必要があります)http://example.com#!tab=TabA&subtab=SubTab3
実行して、サーバーでクライアント側のJavaScript を開いて実行します。私のhttp://example.com
アプリはhttp://htmlsnapshot.appspot.com
... への呼び出しを管理する必要があります...基本的に:
http://example.com/?_escaped_fragment_=tab=TabA%26subtab=SubTab3
(Googlebot クローラーは、%26 =&などの特定の文字をエスケープします)。http://htmlsnapshot.appspot.com?url=http://example.com#!tab=TabA&subtab=SubTab3
(urlパラメータはURLEncodedである必要があります)Google App Engine、Java、HTMLUnitの経験はありません。
私はそれを理解することができるかもしれません...そして私がした場合、私の結果を投稿します。
それ以外の場合、これは、初心者がこのようなWebサービスをセットアップするためのステップバイステップガイドの概要を説明する、キックアスブログの投稿を書ける非常に良い機会だと思います。
これにより、優れた(そして無料の!)Google App Engineがより多くの人々に紹介されます。また、クロール可能なAJAXコンテンツに関するGoogleの仕様を採用することを、より多くの人々に間違いなく奨励します。
Googleの仕様がより受け入れられるようになると、ヘッドレスブラウザの設定の "ハードル"は、多くの開発者をググリングして回答を送ります。名声と栄光の答えを今すぐ手に入れましょう!(編集:少なくとも私はあなたの賞賛を歌います)。
@_chrisjacob
解決策について話したい場合は、Twitterで私をヒットしてください。
AppEngineでHTMLunitを正常に使用しました。これを実行するための私のGWTコードはgwt-platformプロジェクトで利用できます。私が得た結果は、Amit ManjhiによるHTMLunit-AppEngineテストアプリケーションの結果と同様でした。
GWTPの現在のHTMLユニットのサポートを使用して、説明したとおりに実行することは比較的簡単ですが、より単純なアプリで実行することもできます。私が目にする1つの問題は、AppEngineリクエストのタイムアウトが30秒であるため、処理するのにHTMLunitよりも長いページをHTMLユニットで処理できないことです。
更新:久しぶりですが、GWTPを使用してGWTアプリケーションをクロール可能にすることに関する長年の問題をようやく解決しました。ドキュメントは完全にはありませんが、問題を確認してください:http : //code.google.com/p/gwt-platform/issues/detail?id=1
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加