抓取大量資料是時,一個機器爬取過于緩慢,是以需要多台機器一起進行爬取。
1. 使用scrapy架構搭建爬蟲項目
建立爬取B站視訊資訊的scrapy爬蟲項目
-
middlewares.py檔案
設定中間件,定義随機的IP代理
防止B站的IP屏蔽處理
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwQjMx8CX39CXy8CXycXZpZVZnFWbpN0NlAXayR3cvwFduVWay9WLvRXdh9CXyI3Zv1UZnFWbp9zZuBnLwAjZ1ITN0ADMiZDMmZmNi1SN3ETNwkjNvw1cldWYtl2XkF2bsBXdvw1bp5SdoNnbhlmauMXZnFWbp1CZh9GbwV3Lc9CX6MHc0RHaiojIsJye.png)
2 pipeline.py檔案
設定連接配接的資料庫,儲存采集資料,資料庫的屬性在settings檔案設定。
3 settings.py檔案
scrapy項目的一般設定
2.開發爬蟲
重寫start_requests函數,實作生成起始路由清單
将得到資料由parse解析,傳遞給管道儲存。
3. 現在開始将這個scrapy項目進行簡單改成scrapy-redis分布式爬蟲
1 settings檔案設定
這裡是将排程器采用scrapy-redis庫的排程,舍棄原本架構自己的,有Redis資料庫實作,也是為了實作多個爬蟲項目使用同一個排程器,實作Redis資料庫統一排程。
2 更改爬蟲檔案
1.引入scrapy-redis的爬蟲類
2. 将爬蟲繼承scrapy-redis的爬蟲類
3. 将start-urls舍去,改為redis-key,起始爬蟲路由是由Redis資料庫輸入。
4. 新的路由由函數處理後産生。
3 啟動爬蟲
*1. 啟動MongoDB資料庫
mongod –dbpath 資料庫路徑。
*2.啟動Redis資料庫
進入資料庫位置,進入cmd指令行(此處為Windows上)
redis-server.exe redis.windows.conf
*3.Redis資料庫用戶端連接配接
redis-cli.exe
*4. 啟動scrapy-redis分布式爬蟲項目
啟動多個項目後,所有項目進入等待,等待使用者從Redis推入起始路由。
*5.推入起始路由,爬蟲開始運作
lpush myspider:start_urls 起始網頁位址
爬蟲開始運作。