Pythonの爬虫類のエンジニアは、実際のデータをクロールする方法を学習します--app

Pythonのアプリケーション爬虫類のエンジニアは、実際のデータをクロールする方法を学習します

    いくつかの一般的な方向、WEBウェブクロールデータ、APPデータキャプチャ、ソフトウェアのデータ取り込みに分け爬虫類。主に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ワット以下を捕獲)日にクロールする必要性をフェッチサイクルリンクは、比較的単純な永続行う 
  日以上でクロール・サイクルを、あなたはリンクをクロールする必要があり、比較的専門的な持続性を行います

おすすめ

転載: www.cnblogs.com/itman123/p/11597158.html