scrapy redis原理 scrapy-redis多個(gè)Spider同時(shí)連接Redis,但是只有一個(gè)能響應(yīng)?
scrapy-redis多個(gè)Spider同時(shí)連接Redis,但是只有一個(gè)能響應(yīng)?首先,確保您的redis地址不是127.0.0.1或localhost。如果是,則改為IP地址]不要先使用scratch
scrapy-redis多個(gè)Spider同時(shí)連接Redis,但是只有一個(gè)能響應(yīng)?
首先,確保您的redis地址不是127.0.0.1或localhost。如果是,則改為IP地址
]不要先使用scratch redis,直接用Python連接兩臺機(jī)器上的redis,看是否可以連接
如果B不能連接,說明redis設(shè)置不正確,不允許遠(yuǎn)程連接
scratch和scratch的區(qū)別不應(yīng)該討論雷迪斯。Scratch是一個(gè)通用的爬蟲框架,它的功能比較完善,可以幫助你快速編寫一個(gè)簡單的爬蟲,并運(yùn)行。為了更方便地實(shí)現(xiàn)碎片的分布式抓取,scrapredis提供了一些基于redis的組件(注意scrapredis只是一些組件,不是一個(gè)完整的框架)。你可以把它想象成一個(gè)能生產(chǎn)你想要的蜘蛛的工廠。為了幫助工廠更好地實(shí)現(xiàn)一些功能,其他廠家制造了一些設(shè)備來代替工廠原有的設(shè)備。因此,如果要運(yùn)行分布式,應(yīng)該首先設(shè)置場景工廠,然后使用場景redis設(shè)備替換一些場景設(shè)備。
scrapy-redis和scrapy有什么區(qū)別?
scrapy的請求存儲(chǔ)在內(nèi)存中,然后通過schedule進(jìn)行調(diào)度,通過twisted進(jìn)行并發(fā)。為了分配,需要多個(gè)刮片參與調(diào)度。利用redis數(shù)據(jù)庫重寫了在調(diào)度表中存儲(chǔ)和分發(fā)請求的方法。多個(gè)scrape通過遠(yuǎn)程鏈接到redis數(shù)據(jù)庫,同時(shí)參與調(diào)度。
另外,使用redis的set存儲(chǔ)結(jié)構(gòu)重寫重復(fù)數(shù)據(jù)消除方法。
同時(shí),我也在學(xué)習(xí)如何同步redis和MySQL數(shù)據(jù)。代碼級別可以如下:read:read redis-> no,read MySQL-> write MySQL data back to redis,write:write MySQL-> success,write redis
scrapy-redis和scrapy有什么區(qū)別?
如果選擇mongodb,爬蟲表的字段是不確定的,變化很大,所以像MySQL這樣的關(guān)系型數(shù)據(jù)庫是不合適的,不方便開發(fā)。redis的數(shù)據(jù)查詢功能相對較弱,有時(shí)被爬網(wǎng)的數(shù)據(jù)需要使用一些條件查詢進(jìn)行數(shù)據(jù)分析,這對條件查詢r(jià)edis很有幫助。我不熟悉leveldb。Mongo基本上可以滿足上述所有要求,比如動(dòng)態(tài)字段和條件查詢,因此非常適合存儲(chǔ)爬蟲數(shù)據(jù)。