まず第一に、私はコードを探しているのではなく、主題が何を言っているのかについてのアプローチについての単純な議論を探しています.
最近、ウェブサイトのページの変更を (できるだけ早く) 検出する最善の方法について疑問に思っていました。10 万のウェブサイトがあり、それぞれに不明な量のページがあり、クローラーが実際にそれらのすべてにアクセスする必要があると仮定します。たまに?
まず第一に、私はコードを探しているのではなく、主題が何を言っているのかについてのアプローチについての単純な議論を探しています.
最近、ウェブサイトのページの変更を (できるだけ早く) 検出する最善の方法について疑問に思っていました。10 万のウェブサイトがあり、それぞれに不明な量のページがあり、クローラーが実際にそれらのすべてにアクセスする必要があると仮定します。たまに?
RSSフィード(変更されているかどうかを確認するためにプルする必要があります)がない限り、サイトにアクセスして確認する以外に、サイトがいつ変更されたかを知ることはできません。ただし、より効率的にするためにいくつかの賢いことを行うことができます。しばらくサイトをチェックした後、いつ更新される傾向があるかについての予測モデルを構築できます。例:このニュースサイトは2〜3時間ごとに更新されますが、そのブログは1週間程度しか投稿されません。大部分のページは実際にはそれほど頻繁に更新されないため、これにより多くのチェックを節約できます。グーグルはその引っ張りを助けるためにこれをします。このために機能する1つの単純なアルゴリズム(ニュースがどの程度最先端である必要があるかに応じて)は、バイナリ検索に基づく私自身の設計の次のとおりです。
Start each site off with a time interval ~ 1 day
Visit the sites when that time hits and check changes
if something has changed
halve the time for that site
else
double the time for that site
If after many iterations you find it hovering around 2-3 numbers
fix the time on the greater of the numbers
これは、チェックするのに適切な時間を見つけるための単純なアルゴリズムですが、テキストを解析して、更新が実際に投稿された時間のパターンを確認すると、おそらくより効果的な方法を実行できます。