一般情況下
scrapy是這樣的
1、調度器 Scheduler 會調度 Requests 隊列中的請求
2、然后將每個請求交給下載器 Downloader 下載
3、這時候就會得到相應的 item 數據交給 item Pipeline 處理
接著進入 bin 目錄
啟動 redis
沒毛病
使用本地連接一下
恩~連上了
redis 搭建完
接著我們來搭建數據庫的服務器
把 MongoDB 給裝上
先連接到數據庫的服務器上
下載 mongoDB
把解壓下來的文件夾
輕輕的移動一下位置
創(chuàng)建個 db 文件夾
開啟 mongodb
這里順便把 bind_ip 設置一下
這樣才能被遠程訪問
往下拉可以看到
mongoDB 監(jiān)聽的是 27017 端口
說明安裝和啟動成功
使用本地連接試試
可以可以
接著我們需要在
爬蟲服務器安裝 Python3 環(huán)境
slave-02 和 slave-03 服務器
同上安裝 python3
ok
環(huán)境搭起來了
回到我們之前寫的代碼
使用 scrapy 爬取 stackoverflow 上的所有 Python 問答
我們把它改成適用分布式的
將 Pipeline 中的數據庫地址配置成
我們創(chuàng)建的 mongodb 數據庫地址
接著在 setting 中配置
redis 調度和去重
再設置一下延遲訪問
搞完了之后
將虛擬環(huán)境中的庫打包一下
接著把項目
都扔到爬蟲服務器上去
連接到爬蟲服務器
可以看到剛剛傳來的文件
把剛剛在虛擬環(huán)境中
生成的第三方庫列表
在服務器上一頓安裝
其它兩臺爬蟲服務器
和上面一樣安裝所需要的庫
都安裝完之后
就終于可以都 TM 跑起來了
所有的爬蟲
都特么給我跑起來
哈哈哈哈哈
4臺機器開始一頓爬取
可以看到 mongodb 都監(jiān)聽到了
這幾臺服務器的連接了
我們連到 redis 看看
可以看到
redis 在調度著請求的消息隊列
以及過濾重復的請求
再連接到 mongodb 看看
小帥b每隔一小會就查詢一下
爬取下來的數量
可以看到
速度還是可以的
ok
以上就是分布式爬蟲的
搭建及部署的過程了
當然了
數據庫還可以搭建一下集群
數據庫之間的連接最好設置賬戶
進行安全訪問等
主要還是讓你了解這個過程中
分布式爬蟲的搭建和使用
以及體會它的可擴展性和高效性
那么咱們就到這里了
我們下回見,peace
掃一掃
學習 Python 沒煩惱
聯系客服