-1

私は非常にうまく機能し、ほとんどの場合、循環ループトラップでスタックすることを回避する非常に単純なクロールエンジンをまとめました。(つまり、ページAはページBにリンクし、ページBはページAにリンクします)。

このループでスタックするのは、両方のページがキャッシュバスタークエリ文字列で相互にリンクしている場合のみです。基本的には、更新ごとにすべてのリンクで一意のクエリ文字列です。

これにより、ページは常にクローラーにとって新しいページのように見え、クローラーは2つのページ間を移動してスタックします。

2つのページ間でN回バウンスした後、クエリ文字列だけが異なる(これはあまり良いアプローチではないと思います)以外に、これらのトラップを検出して解決する方法は他にあります... ?

4

1 に答える 1

0

たぶん、それらは「キャッシュバスター」ではなく、単なるセッションIDです--- Cookieが役立ちます

数年前、私は同様の問題に対処しなければなりませんでしたが、簡単な解決策を見つけました。それは、Web クライアントで Cookie を有効にすることでした。これが私たちを助けた理由は次のとおりです。

一部の URL (特に広告画像) が「キャッシュの無効化」を目的としているのは事実です。ただし、循環参照は見つかりませんでした。

多くの URL は、訪問者を識別するために URL にランダムに見える文字列を追加します。キャッシュを破壊する意図はありません --- これは、訪問者ごとに一意の「セッション識別子」を取得する方法の副作用にすぎません。

もちろん、訪問者を Cookie で識別した方がはるかに優れています。実際、セッション識別子を使用する動的サイトのほとんどは、最初に Cookie を試行します。Web クライアントがサポートしていないことが判明した場合にのみ、サイトはセッション ID を URL に追加するようにフォールバックします。

結論:

  • Cookie を有効にすることで、ほとんどの動的サイトを快適に保ち、URL のランダムな文字列 (セッション識別子) を避けることができます。
  • 広告主はキャッシュバスターを使用しますが、ほとんど循環参照は使用しません。

私たちにとって、これは問題を解決しました。

于 2009-05-12T14:39:45.363 に答える