Pythonのアプリケーション爬虫類のエンジニアは、実際のデータをクロールする方法を学習します
また、重複排除として知られているデータ重複排除機能は、重複データを検索し、それを削除し、唯一のユニークなデータユニットを保存し、デジタルファイルの集合を指します。データ重複排除が重要であるように、データの重複排除が効果的に、資源の浪費を避けることができます
データ重複除外
データ重複除外は、2つのノードから開始することができます:1は重い行くためのURLです。それは、直接フィルタアウト重複URLであり、他には、データベースの重複除外です。重複データのスクリーニングは、データベースのいくつかの特徴の使用、すなわち。
DEFのprocess_spider_output(セルフ、レスポンス、結果、スパイダー): のための R での結果: IFでisinstance(R、要求): #は結果を分析し、URLは、次のステップに続けば、そうでない場合はスキップ キー= self._get_keyを(R) #_get_keyファンクションキーによって生成され たIFキーで:self.db #チェックするかどうかの重要なデータベース (logger.info " :%S、すでに訪れを無視"%r)この #放棄したデータベースであれば、 IF :self.stats セルフ。 stats.inc_value(' deltafetch /スキップ'、スパイダー=クモ) 続行 のelifに:でisinstance(R&LT、(BaseItem、辞書)) #辞書またはアイテムは、続行すると、解析の結果にを キー= self._get_key(response.request) self.db [キー] = STR(時間。時間()) #永続URLの動作の IF self.stats: self.stats.inc_value(' deltafetch /ストアド'、スパイダー= スパイダー) 降伏R&LT DEFの_get_key(セルフ、要求): #は、いずれかのキー値を生成request.meta渡す、または指紋生成アルゴリズムの使用 キー= request.meta.get(「deltafetch_keyを」)またはrequest_fingerprint(リクエスト) 、リターン to_bytes(キー)
URLの重複排除は、
なぜ私たちはURLを再する必要がありますか?
爬虫類が作業を開始する時には、再ダウンロードが唯一の廃棄物のCPUマシンは検索エンジンシステムの負荷が増加しますしませんので、我々は、繰り返し同じページをダウンロードする必要はありません。そして、あなたはこの繰り返し制御の問題をダウンロードしたい、私たちは、限り、彼らがダウンロードする重複したページで問題を解決することができ繰り返されない、ダウンロードするURLを、コントロールとして、ダウンロードするためのハイパーリンクが基づいて検討する必要があります。
すでに永続化のためのリンクをクロールし、起動時に高負荷キューに入るために、それは比較的強い需要があります。
それは主に重い爬虫類の実行に対処するための障害である、あなたはすべてのリンクを再実行する必要はありません
強度に重みを決定するには?
期間をクロールの強度を決定するために重量が
1時間以内にフェッチサイクルを、リンクを作成する必要が永続性をクロールしていない
、(データの量が30ワット以下を捕獲)日にクロールする必要性をフェッチサイクルリンクは、比較的単純な永続行う
日以上でクロール・サイクルを、あなたはリンクをクロールする必要があり、比較的専門的な持続性を行います