假設有三臺電腦:Windows 10、Ubuntu 16.04、Windows 10,任意一臺電腦都可以作為 Master端 或 Slaver端,比如:
首先Slaver端從Master端拿任務(Request、url)進行資料抓取,Slaver抓取資料的同時,產生新任務的Request便提交給 Master 處理
Master端只有一個Redis資料庫,負責將未處理的Request去重和任務分配,將處理後的Request加入待爬佇列,並且儲存爬取的資料。
Scrapy-Redis預設使用的就是這種策略,我們實現起來很簡單,因為任務排程等工作Scrapy-Redis都已經幫我們做好了,我們只需要繼承RedisSpider、指定redis_key就行了。
缺點是,Scrapy-Redis排程的任務是Request物件,裡面資訊量比較大(不僅包含url,還有callback函數、headers等資訊),可能導致的結果就是會降低爬蟲速度、而且會佔用Redis大量的儲存空間,所以如果要保證效率,那麼就需要一定硬體水平。
pip install scrapy-redis
Redia安裝簡單講解:安裝包下載下來後,點選下一步一直安裝就行,把安裝路徑記錄好;注意安裝好後需要將redis的安裝目錄新增到環境變數中;每當你修改了組態檔,需要重啟redis時,要記得將服務重啟下
Another Redis Desktop Manager簡單講解:點選【New Connection】新增redis連線,連線內容如下(地址、埠等),密碼Auth和暱稱Name不是必填。
可以看到redis安裝的環境、當前redis的版本、記憶體、連線數等資訊。後面我們的筆記會講解通過該軟體檢視待抓取的URL以及URL的指紋
建立普通scrapy爬蟲專案,在普通的專案上改造成scrapy-redis專案;普通爬蟲分為四個階段:建立專案、明確目標、建立爬蟲、儲存內容;
scrapy爬蟲專案建立好後,進行改造,具體改造點如下:
step-1:建立專案
建立scrapy_redis_demo目錄,在該目錄下輸入命令 scrapy startproject movie_test ,生成scrapy專案