2009-03-18 8 views
-1

かなり簡単に動作する非常に簡単なクロールエンジンをまとめました。ほとんどの場合、循環ループトラップに巻き込まれません。 (つまり、ページAへのページBとページBへのリンクはページAへのリンクです)。ページをクロールするときにCacheBusterクエリーストリングを検出する

このループでスタックされた唯一の時間は、両方のページがキャッシュバーストクエリー文字列で相互にリンクしている場合です。基本的に、リフレッシュごとにリンクごとに一意のクエリ文字列です。

これにより、ページは常にクローラの新しいページのように見え、クローラは2つのページの間で動かなくなります。

2つのページの間にN回のバウンスが発生した後で、クエリーストリング(これは私が非常に良いアプローチではないと思う)との違いがあるだけでなく、これらを検出してトラップ...?

答えて

0

おそらく彼らは単にセッションIDではなく、「キャッシュバスターズ」私は同様の問題に対処しなければならなかったし、私たちは簡単な解決策を見つけ、クッキーは、数年前に

を助ける---以下のとおりです。クッキーを有効にしますあなたのウェブクライアントで。これがなぜ私たちを助けたのか説明しています:

URL(特に広告画像)の中には "キャッシュを壊す"ものがあります。しかし、私たちはそれを用いて循環参照を見つけられませんでした。

多くのURLは、ランダムに見える文字列をURLに追加して、に訪問者を識別します。。キャッシュを破棄するつもりはありません。これは、各訪問者に固有の「セッション識別子」を取得するメソッドの副作用に過ぎません。

もちろん、Cookieで訪問者を特定する方がはるかに優れています。実際、セッション識別子を使用するほとんどの動的サイトでは、Cookieが試行されます。 Webクライアントがそれらをサポートしていないことが分かった場合にのみ、サイトはURLにセッションIDを追加することに戻ります。

ボトムライン:

  • クッキーを有効にすることで、私たちは幸せに最もダイナミックなサイトを維持し、URLでのランダムな文字列(セッション識別子)を回避することができます。
  • 広告主doはキャッシュバスターを使用しますが、ほとんどは循環参照がありません。

これは問題を解決しました。

関連する問題