ホームページ  >  記事  >  バックエンド開発  >  強力なクローラー フレームワーク Scrapy とは何ですか?

強力なクローラー フレームワーク Scrapy とは何ですか?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼転載
2019-06-05 18:02:554133ブラウズ

Web クローラーは、特定のルールに従って World Wide Web 情報を自動的にクロールするプログラムまたはスクリプトです。インターネット検索エンジンまたは他の同様の Web サイトで広く使用されており、アクセスできるすべての情報を自動的に収集できます。コンテンツにアクセスするためのページこれらのサイトの。 Scrapy は非常に強力なクローラー フレームワークであり、python で書かれています。 Scrapy とは何なのか見てみましょう?

強力なクローラー フレームワーク Scrapy とは何ですか?

1. 必要な知識

必要な知識は次のとおりです: Linux システムPython 言語 Scrapy フレームワーク XPath (XML パス言語) およびいくつかの補助ツール (ブラウザー開発者ツールおよび XPath ヘルパー プラグイン)。

当社のクローラーは、Python 言語の Scrapy クローラー フレームワークを使用して開発され、Linux 上で実行されるため、Python 言語、Scrapy フレームワーク、および Linux オペレーティング システムの基本的な知識に精通している必要があります。

XPath を使用して、中国語テキストの段落や「次のページ」リンクなどを含む、ターゲット HTML ページから必要なものを抽出する必要があります。

ブラウザの開発者ツールは、クローラーを作成するための主要な補助ツールです。このツールを使用すると、ページ リンクのパターンを分析し、HTML ページ内で抽出する要素を見つけて、クローラー コードで使用する XPath 式を抽出できます。また、リファラー、Cookie、およびその他の情報を表示することもできます。ページリクエストヘッダー。クロールされたターゲットが動的 Web サイトの場合、ツールはその背後にある JavaScript リクエストも分析できます。

XPath ヘルパー プラグインは Chrome 用のプラグインであり、Chrome コアに基づいたブラウザにもインストールできます。 XPath ヘルパーを使用して XPath 式をデバッグできます。

2. 環境セットアップ

Scrapy をインストールするには、pip コマンドを使用できます: pip install Scrapy

Scrapy には関連する依存関係が多数あるため、次の問題が発生する可能性があります:

ImportError: w3lib.http

という名前のモジュールがありません 解決策: pip install w3lib

ImportError:Twisted

という名前のモジュールがありません 解決策: pip installTwisted

ImportError: lxml.HTML

という名前のモジュールがありません 解決策: pip install lxml

エラー: libxml/xmlversion.h: そのようなファイルまたはディレクトリはありません

解決策: apt-get install libxml2-dev libxslt-dev

apt-get install Python-lxml

ImportError: cssselect

という名前のモジュールがありません 解決策: pip install cssselect

ImportError: OpenSSL という名前のモジュールがありません

解決策: pip install pyOpenSSL

提案:

簡単な方法を使用してください: anaconda を使用してインストールします。

3. Scrapy フレームワーク

1. Scrapy の概要

Scrapy は、Python で書かれた有名なクローラー フレームワークです。 ScrapyはWebスクレイピングを簡単に実行でき、自分のニーズに合わせて簡単にカスタマイズすることもできます。

Scrapy の全体構造はおおよそ次のとおりです:

強力なクローラー フレームワーク Scrapy とは何ですか?

2.Scrapy コンポーネント

Scrapy には主に次のコンポーネントが含まれています。

#エンジン (Scrapy)

はシステム全体のデータ フローを処理するために使用され、トランザクションをトリガーします (フレームワーク コア)。

Scheduler

は、エンジンからリクエストを受け入れ、キューにプッシュし、エンジンが再度リクエストしたときに返すために使用されます。 URL (クロールされた Web ページの URL またはリンク) のキュー。これにより、次にクロールされる URL が決定され、重複する URL が削除されます。

Downloader

は、Web コンテンツをダウンロードし、Web コンテンツをスパイダーに返すために使用されます (Scrapy Downloader は、Twisted の効率的な非同期モデルに基づいて構築されています)。

クローラー

クローラーは主に、いわゆるエンティティ (アイテム) である特定の Web ページから必要な情報を抽出するために使用されます。ユーザーはそこからリンクを抽出し、Scrapy に次のページのクロールを継続させることもできます。

プロジェクト パイプライン(パイプライン)

は、クローラーによって Web ページから抽出されたエンティティの処理を担当します。主な機能は、エンティティの永続化、エンティティの有効性の検証、および不要な情報を削除します。ページがクローラーによって解析されると、プロジェクト パイプラインに送信され、データはいくつかの特定のシーケンスを通じて処理されます。

ダウンローダー ミドルウェア

Scrapy エンジンとダウンローダーの間にあるフレームワークで、主に Scrapy エンジンとダウンローダー間のリクエストとリクエストを処理します。

スパイダー ミドルウェア

Scrapy エンジンとクローラーの間のフレームワーク。その主な仕事は、スパイダーの応答入力と要求出力を処理することです。

スケジューラミドルウェア

Scrapy エンジンとスケジューラの間のミドルウェア。Scrapy エンジンからスケジューラにリクエストと応答を送信します。

不正な実行プロセス:

1. エンジンは、次のクロールのためにスケジューラからリンク (URL) を取得します。

2. エンジンURL をリクエスト (Request) にカプセル化し、ダウンローダーに渡します。

3. ダウンローダーはリソースをダウンロードし、それを応答パッケージ (Response) にカプセル化します。

4. クローラーは、応答

5. エンティティ (アイテム) が解析されると、さらなる処理のためにエンティティ パイプラインに渡されます

6. リンク (URL) が解析されると、URL はクロールを待機するためにスケジューラに渡される

以上が強力なクローラー フレームワーク Scrapy とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
前の記事:Python定義関数次の記事:Python定義関数