現在、Web クローラーを作成しています (Python フレームワークのScrapyを使用)。
最近、一時停止/再開システムを実装する必要がありました。
私が実装したソリューションは最も単純なもので、基本的には、リンクがスケジュールされたときにリンクを保存し、実際にリンクが「処理済み」としてマークされます。
したがって、スパイダーを再開するときにこれらのリンクを取得できます (明らかに、URL、深さの値、リンクが属するドメインなどよりも少し多くの情報が保存されています...)。これまでのところ、すべてがうまく機能しています。
現在、私は mysql テーブルを使用してこれらのストレージ アクションを処理しており、主に高速なプロトタイピングを目的としています。
ここで利用できるオプションはデータベースだけではないと思うので、これを最適化する方法を知りたいと思います。最適化とは、非常にシンプルで軽量なシステムを使用しながら、短時間で書き込まれた大量のデータを処理できることを意味します
今のところ、数十のドメインのクロールを処理できるはずです。つまり、1 秒間に数千のリンクを保存することになります...
提案を事前にありがとう