クローラーを作成し、結果をデータベース (MongoDB) に保存します。
もちろん、可能なクエリ パラメータの 1 つとして URL を使用することは重要です。しかし、それには問題もあります:
- URL は非常に長くなる可能性があり、MongDB には有限の最大キー長があります
- コンテンツの同義語はたくさんあり、1 ページだけをクロールしただけではわかりません。
- HTTP 301、302、303、307 などの対処法 元の URL を保存するか、新しい場所を保存するか? これは特にリンク短縮サービスの問題です。
- 「last.fm」の問題。lastfm.com == last.fm ~= lastfm.it (など) であり、サイトは 30x の結果コードを使用して示していません。複数のドメインからコンテンツを提供するだけです。
このデータベースの目標:
- データベースにあるかもしれないし、ないかもしれない URL が与えられた場合、そのドキュメントを以前にクロールしたことがあるかどうかを妥当な精度で調べるためにクエリを実行させてください。
もちろん、「重複を気にせずにクロールして正確な URL を保存する」以外のスキームには、ある程度の誤検知があります。誤検知とは、以前にクロールした URL と同じと思われるが、実際には異なる URL です。