問題タブ [hashbang]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
web-crawler - Web クローラーを作成する -- Google が #! を見たときに行うことをどのようにエミュレートするか URLで?
私は Web クローラーを作成して#!
いて、取得したページで URL に遭遇したときに Google が行うことをしたいと考えています。URL に #! がない場合 Google は、最終的にフェッチしてインデックスに登録するページのリストにそれを追加しますが、#! Google の「Ajax クロール入門」ドキュメントで説明されているとおりです。
それを含む URL を Google が認識すると、その URL を#!
変更し、変更された URL に対して HTTP GET を実行し、取得したページを#!
(実際に取得した URL ではなく) 含まれている URL を取得したかのようにインデックスに登録します。完全に説明されていない変換をエミュレートしようとしています。
参照されたページは、Google が URL を変更するために何をするかを部分的に説明し、元の URL が何であったかを知り、その URL の下にインデックスを作成したいデータを返すことができるように、変換を元に戻す方法を Web サイトの作成者に伝え#!
ます。ページが言うことの1つは次のとおりです。Note: The crawler escapes certain characters in the fragment during the transformation. To retrieve the original fragment, make sure to unescape all %XX characters in the fragment. More specifically, %26 should become &, %20 should become a space, %23 should become #, and %25 should become %, and so on.
言及されている「変換」は、に続くテキスト内のいくつかの特殊文字を置き換えてエスケープすること#!
です。このテキストは、変更された URL の後に続くテキストで %XX のエスケープを (部分的に) 解除することで、変換を元に戻すよう Web サイトの作成者に指示します。問題は、Google が要求するのと同じ置換 URL をクローラーが要求できるように、どの特殊文字をエスケープする必要があるかをどのように知ることができるかということです。?_escaped_fragment=
#!
?_escaped_fragment=
引用された段落で、Google はエスケープするものをいくつか挙げていますが、最後の「など」は、エスケープされた文字の完全なリストがより長いことを示唆していますが、完全には説明されていません。
理論的には、すべての文字 (文字も含む) を %XX としてエスケープできますが、すべての Web サイトがそれを正しく処理する可能性は高くありません。クローラーが Google と同じ URL をリクエストするように、Google がエスケープする文字を特定するにはどうすればよいですか?
(着信 URL をログに記録する Web サイトを制御し、Google にクロールさせることができた場合、#! の後に特殊文字を含む URL を多数含むページを作成し、URL を調べて何がエスケープされたかを確認できます。と?_escaped_fragment_=
-- しかし、答えを得るために偽の Web サイトを設定する必要があるのでしょうか?)
javascript - 空の URL ハッシュにより、ページが js イベントでジャンプする
次と前のボタンが付いた写真のギャラリーがあります。ボタンの1つがクリックされたときにJavaScriptメソッドの1つが何らかの理由で壊れている場合、URLにハッシュが追加されます。つまり、 www.google.com# です。ページのその部分にジャンプするためにハッシュに div id を指定できることは知っていますが、空白の場合はページを数回ジャンプし、何をターゲットにしているのかわかりません。URLからハッシュを削除しようと考えましたが、すべてのアクションでそれを確認する必要があり、それは悪い習慣のようです. ハッシュがページ上のアクションに違いをもたらさなかったらいいのにと思います。