第十四講 Scrapy redis 分布式

2021-10-08 10:17:16 字數 2129 閱讀 9338

使用分布式來加快爬的速度。—大資料。

將壓縮包解壓到指定目錄,就安裝好了。

配置環境變數

測試是否安裝成功,在cmd中輸入redis-server:

配置檔案如下:

這部分有很多比較詳細的文件可以查閱參考。

指紋集合作用和原理:

任務佇列原理:使用的資料結構為有序集合zset,特徵是有scores欄位。

特點是實時更新順序,因此可以用來排列任務。

(一)主機配置

1、匯入包

from scrapy_redis import spiders
2、將start_urls注釋調,因為scrapy-redis是從redis中讀取初始任務的,不需要start_urls:

然後重寫類:

3、主機寫入初始化redis的初始url列表的**。

主機:就是使用的哪台電腦上的redis和mongo,哪台電腦就是主機。

4、在spider中設定讀取初始任務的**,方法如下:

這裡的redis-key就表示將來專案啟動後就會從redis中的這個key所對應的列表中獲取url。

5、在settings.py中新增如下配置:

# 這三條主機和從機都要新增:配置排程器和去重指紋集合。

#配置scrapy-redis排程器

scheduler = "scrapy_redis.scheduler.scheduler"

#配置url去重

dupefilter_class = "scrapy_redis.dupefilter.rfpdupefilter"

#配置優先順序佇列

scheduler_queue_class = 'scrapy_redis.queue.priorityqueue'

##埠號

redis_port = 6379

mongo_database = 'caixi'

#主機和從機不一樣的:

#主機名

redis_host = 'localhost'

mongo_uri = 'localhost'

#【主機才負責初始化redis的任務列表】

#從機裡面: 主機ip要確定

redis_host = '目標主機的ip'

mongo_uri = '目標主機的ip'

(二)從機配置

在主機配置的基礎上進行改寫即可。

1、首先注釋掉redis_urls.py檔案中所有的**,因為從機是從主機中取出任務的。

2、將settings中的配置改一下:

就是把下述兩行改掉:

redis_host = '目標主機的ip'

mongo_uri = '目標主機的ip'

第十四講 模組

1.模組 模組化指將乙個完整的程式分解成乙個個的小模組 通過將模組組合,來搭建出乙個完整的程式 模組化的優點 方便開發 方便維護 模組可以復用 模組的建立 在python當中乙個py檔案就是乙個模組 在乙個模組中引入外部模組 import模組名 模組名就是py檔案 可以引入同乙個模組多次,但是模組的...

C 銳利體驗 第十四講 列舉

第十四講 列舉 列舉型別是c 中又一種輕量級的值型別,c 用列舉來表達一組特定的值的集合行為,比如windows窗體可選的狀態,按鈕控制項的風格等。下面的程式偽碼展示了典型的列舉用法 public enum writingstyle class essay 注意上面的列舉符號classical,mo...

MFC孫鑫第十四講UDP

srv include include void main if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 socket socksrv socket af inet,sock stream,0 socket socksrv socket...