Redisのは、支持体には、処理を分散することを非リレーショナルデータベースです
- Redisのは現在最速のメモリベースのキーと値のペアのデータベースとして認識されています
- Redisの一時的なデータをバッファとして、高速メモリ読み出し及び書き込みクロール爬虫類大幅に増加効率の利点を取ることができます。
- より簡単Scrapyクロール分散、およびいくつかのRedisに基づくコンポーネントが提供する解決するためにscrapyは、Redisの。
- scrapy-Redisの複数のスパイダーは、分散の大きな問題を解決するために同一のRedisのデータベースを読み出し可能に、データベースに両端キューをRedisの。
次に、主記録は、直接達成するためにどのようScrapy_redisは、分散処理します:
1、Scrapy_redisモジュール実装
pip install scrapy_redis
2、Scrapy設定
クモファイル、爬虫類
新しい設定settings.pyファイル:(割り当てに行きます)
# 添加配置
# 过滤器 去重
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
# 调度器
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
# 调度状态持久化 也可以不用设置
SCHEDULER_PERSIST = True
# 请求调度使用优先队列 也可以不用设置
SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderPriorityQueue'
# redis 使用的端口和地址
REDIS_HOST = '127.0.0.1'
REDIS_PORT = 6379
# 或者使用 REDIS_URL = 'redis://127.0.0.1:6379'
# 这个要留意一点,姜redispipeline放到item_pipelines中,如果你已经写过了,直接将该pipe放进
#item_pipeline中即可,千万别分开写,导致后边出现的覆盖
ITEM_PIPELINES = {
'scrapy_redis.pipelines.RedisPipeline': 100,
}
もちろん、他の分散機少し異なります、
「(あなたはCMDの下でipconfigコマンドを通して見ることができます)サーバホストのIPアドレス」を変更REDIS_HOST =、残りは同じです。これだけは異なっています
3、インストールと設定をRedisの
(1)アーカイブRedisのダウンロード
ドキュメント:Redis-x64-3.2.100.zip
リンク:http://note.youdao.com/noteshare?id=49b64d39412e68ef43d3db4727b1e04c&sub=85B94D1B540446DF93E5B1C70426AB48
(2)指定したフォルダにRedis-x64-3.2.100.zipを抽出します
(3)パスパス構成
システムのPATH環境変数パスに追加解凍されたファイル・パスの下で
(4)+ Rを獲得--->コマンドを起動CMD
示すように、入力のRedisサーバは、表示され、設定が成功しました
コンピュータ、インストールRedisのと同様に(5)
(6))は、リモートアクセス動作を許可:(以下のように改変サーバコンピュータ、必要なコンフィギュレーションファイルredis.windows-service.confとして機能します
次のように改正:設定ファイルを開きます。
1)オープンから次のコメントに対応した設定ファイル
#127.0.0.1バインド
2)Redisのデフォルトはデーモンモードで実行されていないが、あなたが設定項目を変更することができ、使用yesが設定されているデーモンを有効にするNOの
デーモン化NO
3)保護モード
プロテクトモードなし
サーバマシン上のRedisサーバのサービスを開始すること(7)
(Redisのサーバー構成ファイルの絶対パス):CMDコマンドの下では、サーバを起動するコマンドを入力します。
redis-server E:\redis\redis.windows-service.conf
キー5月に入る押した後、任意のプロンプトが、すべての権利を表示されません、それがサービスを開始するにはエラーを示していない、あなたは少しパニックを持っています
(8)サーバは、マシンは、分散クロールを開始します
スタート爬虫類を入力した後、データベースをDangdangキーは、キーとRedisのデータベース限り、キーに対応するデフォルトのウェイト値の値をRedisの爬虫類:详细値に対応する値、クローラーが開始されます
redis_key = 'dangdang'
(9)私は勉強したくない、Redisのコマンドないんだけど考えると、それは、データ操作のためのグラフィカル・インターフェースのような小さなイルカ(MySQLの)インストールと同等です
A、ダウンロードのRedis-デスクトップマネージャ-0.8.8.384.exe
リンクします。https://pan.baidu.com/s/1-3e86v5nBgnEmrxni63iJQ
抽出コード:kun4は
このオープンBaiduのネットワークディスクの電話アプリケーション、より便利な操作の内容をコピーああ
B、インストール:だけインストールし、次のすべての道オープン
C、Redisの可視化ツールの実装をクリックしてください
D、接続Redisのサービス(コース前に最初にローカルRedisのサービスを開始しなければならないから、それが接続されることができます)
図操作:
E、根の角を左ダブルクリックしてトップには、エラーがあれば、そこかどうかを確認するためにサービスを開始します
Fは、キーを追加します
保存した後の保存、注意爬虫類端子を飛んで、サーバーおよび分散機は分散クローラを起動しようとしている、他のコントロールを持っていません。
(10)scrapy_redis、このような分散型アーキテクチャを使用して、我々はまた、HTTP、サーバーをシャットダウンした場合でも、次回の開始時間は、オリジナルに基づいて爬虫類を分散し続けることができることができます
いくつかの時間のために実行した後、我々は、3つのデータテーブルがあることがわかりました。
详细:dupefilter重複データシート
详细:商品このアイテムは、データテーブルに格納されています
详细:要求され、.pop操作を実行する場合は要求は、現在まだ保存要求されていないオブジェクトを要求
4、これが鍵です
参考文献:
(1(scrapy_redis原理基礎となるコードプロファイリング)https://cuiqingcai.com/6058.html
(2(Redisのデータベースの知識)https://www.cnblogs.com/jinxiao-pu/p/6838011.html
5出典:
XX爬虫類書籍:https://github.com/steamfeifei/Scrapy_redis_spiderBook