爬蟲 09 scrapy redis分布式爬蟲

2021-08-08 08:46:52 字數 2352 閱讀 3387

回到頂部

1.分布式的優點

問:為什麼scrapy不支援分布式?

答:在scrapy中scheduler是執行在佇列的,而佇列是在單機記憶體中的,伺服器上爬蟲是無法利用記憶體的佇列做任何處理,所以scrapy不支援分布式。

2.分布式需要解決的問題

所以要用redis來解決。

回到頂部

輸入以下命令即可執行

這樣已經啟動了,可以輸入相關的命令進行測試。

1.字串命令

set mykey ''cnblogs''   建立變數

get mykey   檢視變數

getrange mykey start end   獲取字串,如:get name 2 5 #獲取name2~5的字串

strlen mykey   獲取長度

incr/decr mykey    加一減一,型別是int

2.雜湊命令

hset myhash name "cnblogs"   建立變數,myhash類似於變數名,name類似於key,"cnblogs"類似於values

hgetall myhash   得到key和values兩者

hget myhash  name  得到values

hexists myhash name  檢查是否存在這個key

hdel myhash name   刪除這個key

hkeys myhash   檢視key

hvals muhash   檢視values

3.列表命令

lpush/rpush mylist "cnblogs"  左新增/右新增值

lrange mylist 0 10   檢視列表0~10的值

blpop/brpop key1[key2] timeout   左刪除/右刪除乙個,timeout是如果沒有key,等待設定的時間後結束。

lpop/rpop key   左刪除/右刪除,沒有等待時間。

llen key  獲得長度

lindex key index    取第index元素,index是從0開始的

4.集合命令(不重複)

sadd myset "cnblogs"   新增內容,返回1表示不存在,0表示存在

scard key  檢視set中的值

sdiff key1 [key2]   2個set做減法,其實就是減去了交際部分

sinter key1 [key2]    2個set做加法,其實就是留下了兩者的交集

spop key   隨機刪除值

srandmember key member  隨機獲取member個值

smember key   獲取全部的元素

5.可排序集合命令

zadd myset 0 『project1』 [1 『project2』]   新增集合元素;中括號是沒有的,在這裡是便於理解  

zrangebyscore myset 0 100   選取分數在0~100的元素

zcount key min max   選取分數在min~max的元素的個數

redis教程(菜鳥教程)

redis命令引數

回到頂部

可以看github上的scrapy-redis的使用方法。

bloomfilter 布隆過濾器 整合到scrapy-redis中。

原始碼還沒有理解透徹,先不寫說明了。

相關**的請移步我的github:scrapy-redis應用的專案

出處:

爬蟲基礎 Scrapy Redis分布式爬蟲元件

scrapy是乙個框架,他本身是不支援分布式的。如果我們想要做分布式的爬蟲,就需要借助乙個元件叫做scrapy redis,這個元件正是利用了redis可以分布式的功能,整合到scrapy框架中,使得爬蟲可以進行分布式。可以充分的利用資源 多個ip 更多頻寬 同步爬取 來提高爬蟲的爬行效率。可以充分...

scrapy redis分布式爬蟲

依賴環境 scrapy 1.1 redis 2.8 分布式爬蟲 將乙個專案拷貝到多台電腦上,同時爬取資料。1.必須保證所有電腦上的 是相同的配置。2.在其中一台電腦上啟動redis和mysql的資料庫服務。3.同時將所有的爬蟲專案執行起來。4.在啟動redis和mysql資料庫的電腦上,向redis...

94 爬蟲 scrapy redis實戰(五)

有緣網的資料爬回來了,但是放在redis裡沒有處理。之前我們配置檔案裡面沒有定製自己的item pipelines,而是使用了redispipeline,所以現在這些資料都被儲存在redis的youyuan items鍵中,所以我們需要另外做處理。在scrapy youyuan目錄下可以看到乙個pr...