I.はじめに:
- 前の章では、インストールプロセスScrapy爬虫類を説明し、個別のスペースを作成します。
- 私たちの目標は何の空洞ではありません!
- 私たちの目標は何の空洞ではありません!
- 私たちの目標は何の空洞ではありません!
- さて、私たちの目標は、プロジェクトのscrapy構造を理解することであり、最後の小さな爬虫類を通じて使用してその簡単に確認する方法を、私にヒットしません!
二、scrapyのプロジェクト構造
まずは、コマンド実行scrapyのscrapyプロジェクトを作成してみましょう、このプロジェクトは、ラップの部分を見ていきます
あなたはvirtualenvの開発環境で作成したい場合は[OK]を、私たちはああ、あなたがクリックすることができます明確ではありませんvirtualenvの環境を入力するように覚えて、コマンドを実行し、あなたが好きな次のディレクトリにcdをscrapydemoさんと呼ばれるプロジェクトを作成し、かついるScrapyを(a)の説明を使用
scrapy startproject scrapydemo
あなたが実行した後、次のディレクトリ構造が表示されます
scrapydemo/ scrapy.cfg scrapydemo/ __init__.py items.py pipelines.py settings.py spiders/ __init__.py
以下のようにファイルの役割がある:1、scrapydemoの下に保存されたプロジェクトプロファイル2を、scrapy.cfg /ディレクトリには、プロジェクトに関連する当社のpythonコードファイルで、3内部の一般的なコード、items.pyはクロールとデータモデルを定義し、あなたはJavaの豆4、データscrapyクロールを処理する責任pipelines.pyで、我々はターゲット・ページをダウンロードするには解決されたデータを理解すれば、データを処理するためのパイプラインに送信されます、pipelines.pyファイルはDEFデータを受信して処理するアプローチをprocess_item 5、のようなsettings.pyクローラー構成ファイル、:そのような遅れクロール設定情報など、ユーザエージェントは、6内部のこの構成である、クモ/ディレクトリには、私たちが書いた実際のディレクトリコードです
第三に、クローラーを作成します
OK、我々は構造の一般的な理解を持って、我々はscrapyがリトラクタステンシルクローラーをクロールウェブを提供生成するには、次のテンプレートを使用genspider spiderLagouは見scrapy https://www.lagou.com --template =クロール
ハ、図オンライン集め、以下に示すようScrapyは、プロセスをクロール、ほとんどの処理を行う:1「2-」3-「4-」1そうサイクル.....
エンジン(Scrapyエンジン)は、全体のデータストリーム処理システムを処理するために、トランザクションがトリガされます。
スケジューラ(スケジューラ)は、エンジンを介して送信される要求を受信するために、キューに押し込ま、いつ要求を再度エンジンを返しています。
WebコンテンツやWebコンテンツをダウンロードするダウンローダ(ダウンローダ)、クモに戻りました。
蜘蛛(くも)、クモは、主要な仕事であり、特定のドメインまたはWebページを解決するためのルールを開発するためにそれを使用します。項目(つまり、取得した項目)または追加のフォローアップURLを解析して抽出するために使用書かれた応答クラス。それぞれのクモは、特定の(または一部)のウェブサイトを処理する責任を負っています。
Webプロジェクトから引き出されたクモの処理を担当プロジェクトパイプライン(項目パイプライン)は、彼の主なタスクは、きれいに検証し、データを格納することです。ページはクモを解析される場合は、プロジェクトがパイプラインに送られ、処理データのいくつかの特定の順序の後になります。
ダウンロードミドルウェア(ダウンローダーミドルウェア)は、フレームは、主エンジンとScrapyダウンローダの間のリクエストとレスポンスを扱う、フックおよびダウンローダScrapyエンジンとの間に位置しています。
クモミドルウェア(クモミドルウェア)フックは、フレームとエンジンScrapyスパイダーとの間に介在され、メインタスクは入出力要求とスパイダーに応じて処理されます。
Scrapyスケジューリング要求および応答にエンジンから送信されたミドルウェアエンジンScrapyとスケジューリングとの間に介在スケジューリングミドルウェア(スケジューラミドルウェア)。