Scrapy を使用して分散クローラーを開発しますか?一番早い方法は何か知っていますか?分散クローラーを 1 分で開発または変更することは本当に可能ですか? では、早速実践方法を見ていき、その後で詳細についてお話していきましょう。 すぐに始めましょう ステップ0: まず、Scrapy-Distributed をインストールします。
必要なランタイムがない場合は、テスト用に 2 つの Docker イメージ (RabbitMQ と RedisBloom) を起動できます。
ステップ 1 (オプション): 既存のクローラーがある場合は、この手順をスキップして手順 2 に直接進むことができます。 クローラー プロジェクトを作成します。ここではサイトマップ クローラーを例に挙げます。
次に、spiders フォルダー内のスパイダー プログラム ファイルを変更します。
ステップ2: 設定ファイル settings.py の SCHEDULER、DUPEFILTER_CLASS を変更し、RabbitMQ と Redis の関連設定を追加するだけで、すぐに分散クローラーを取得できます。 Scrapy-Distributed は、デフォルトの RabbitMQ キューとデフォルトの RedisBloom フィルターを初期化するのに役立ちます。
また、Spider クラスに 2 つのクラス属性を追加して、RabbitMQ キューまたは RedisBloom フィルターを初期化することもできます。
ステップ3:
RabbitMQ キューと RedisBloom フィルターを確認してください。正常に動作していますか? ご覧のとおり、Scrapy-Distributed のサポートにより、構成ファイルを変更するだけで、通常のクローラーを RabbitMQ キューと RedisBloom フィルターをサポートする分散クローラーに変更できるようになります。 RabbitMQ と RedisBloom 環境では、構成の変更に 1 分しかかかりません。 Scrapy-Distributedについて 現在、Scrapy-Distributed は主に Scrapy-Redis と scrapy-rabbitmq の 2 つのライブラリを指します。 Scrapy の経験があれば、分散クロールを迅速に実行できる Scrapy-Redis ライブラリをご存知かもしれません。 RabbitMQ をクローラー タスク キューとして使用しようとしたことがある場合は、scrapy-rabbitmq プロジェクトをご覧になったことがあるかもしれません。 Scrapy-Redis はすでに非常に便利であり、scrapy-rabbitmq も RabbitMQ をタスク キューとして実装できることは事実ですが、いくつか欠陥があります。ここで簡単にいくつかの疑問を提起したいと思います。
そこで、この時に Scrapy-Distributed フレームワークが誕生しました。非侵入型設計により、settings.py の設定を変更するだけで、フレームワークはデフォルトの構成に従ってクローラーを配布できます。 Scrapy-Redis と scrapy-rabbitmq の問題点のいくつかを解決するために、Scrapy-Distributed は次のことを行います。
現在、フレームワークに多くの機能が追加されています。関心のある友人は、プロジェクト リポジトリの開発に引き続き注目し、一緒にアイデアについて話し合うことができます。 |
>>: 分散コンセンサスアルゴリズム EPaxos について 1 つの記事で学ぶ
ウェブサイトのコンテンツは、ウェブサイトの品質を測る基本的な要素です。どのようなウェブサイトのコンテ...
説明不要の機密情報サイト「ビビティ」が百度に根絶されたことは皆さんご存知だと思います。企業のサイトが...
秋にアップルが発表した新製品では、iPhone にこれまでで最高のディスプレイが搭載されました。 S...
arkecxは、日本の東京データセンターで日本のクラウドサーバー(日本のvps)を提供しています。デ...
時間が経つにつれて、あなたのノートは美しい芸術作品になります。すべての戦略がくしゃくしゃに丸められて...
今日は2012年2月15日です。鄭州は晴れていません。私の気分は天気と同じです。キーワードのランキン...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス高品質なウェブサイトを構...
クラウド アーキテクチャについて話すとき、通常はクラウド プラットフォーム自体のアーキテクチャではな...
[360 に関する最近のニュースは、他のインターネット企業に対する攻撃が減り、自社の開発に対する反省...
急速な発展とデジタル化の緊急のニーズに駆り立てられ、今日のデジタル企業は、迅速な変革を実現するために...
結局のところ、 ASO は本質的にはユーザーのニーズを満たし、ユーザーの判断と理解に応えることであり...
Hewlett Packard Enterprise の子会社である Aruba は本日、業界初の ...
最近、ICANN (Internet Corporation for Assigned Names ...
[コアヒント] ユーザーを中心に据えて製品を設計する場合、プロダクトマネージャーは単純な需要現象を超...
ロシアの会社であるProfitserverは、複数のデータセンターでVPSを運営しています。ここでは...