回到頂部
1.分布式的優點
問:為什麼scrapy不支援分布式?
答:在scrapy中scheduler是執行在佇列的,而佇列是在單機記憶體中的,伺服器上爬蟲是無法利用記憶體的佇列做任何處理,所以scrapy不支援分布式。
2.分布式需要解決的問題
所以要用redis來解決。
回到頂部
輸入以下命令即可執行
這樣已經啟動了,可以輸入相關的命令進行測試。
1.字串命令
set mykey ''cnblogs'' 建立變數2.雜湊命令get mykey 檢視變數
getrange mykey start end 獲取字串,如:get name 2 5 #獲取name2~5的字串
strlen mykey 獲取長度
incr/decr mykey 加一減一,型別是int
hset myhash name "cnblogs" 建立變數,myhash類似於變數名,name類似於key,"cnblogs"類似於values3.列表命令hgetall myhash 得到key和values兩者
hget myhash name 得到values
hexists myhash name 檢查是否存在這個key
hdel myhash name 刪除這個key
hkeys myhash 檢視key
hvals muhash 檢視values
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表示存在5.可排序集合命令scard key 檢視set中的值
sdiff key1 [key2] 2個set做減法,其實就是減去了交際部分
sinter key1 [key2] 2個set做加法,其實就是留下了兩者的交集
spop key 隨機刪除值
srandmember key member 隨機獲取member個值
smember key 獲取全部的元素
zadd myset 0 『project1』 [1 『project2』] 新增集合元素;中括號是沒有的,在這裡是便於理解redis教程(菜鳥教程)zrangebyscore myset 0 100 選取分數在0~100的元素
zcount key min max 選取分數在min~max的元素的個數
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...