Scrapy爬蟲框架簡單解析

scrapy框架解析

Scrapy框架大體包括如下幾個組件:Scrapy Engine、Spiders、Scheduler、Item Pipeline、Downloader;數據庫

組件

Scrapy Engine

這是框架的核心,負責控制數據流在整個系統的各個組件間的流動過程,而且在特定動做發生時觸發相應事件。框架

Scheduler

調度程序從Scrapy引擎接受其傳遞過來的Request對象,而且將該對象加入到隊列中,下次Scrapy引擎發出請求時再將對象傳遞給引擎。scrapy

Downloader

下載器負責對目標頁面發出請求而且獲取到頁面反饋的數據,以後傳遞給Scrapy引擎,最終傳遞給爬蟲進行數據提取。ide

Spiders

爬蟲是Scrapy的用戶自行編寫的程序用來提取數據,針對下載器返滬的Response進行分析,或者指定其它須要跟進的URL和處理方法。url

Item Pipeline

數據管道負責處理被爬蟲提取出來的Item數據,能夠定義多個數據管道來作多種不一樣的數據操做,好比數據清理、驗證、寫入數據庫;Item能夠在不一樣的數據管道中進行傳遞,能夠設置每一個數據管道的優先級,Item會按照優先級依次通過全部的數據管道。spa

流程

它的流程圖以下:code

步驟以下:對象

  1. 啓動爬蟲程序時,引擎開始爬取程序中給定的爬蟲,而後獲取到須要抓取的URL網址(能夠經過爬蟲類的屬性Start_urls來指定或者重載爬蟲類的start_request方法指定),而後將URL網址的Request傳遞給調度器;
  2. 下載器從調度器那獲取到相應的請求後發出請求,得到頁面返回的數據,將返回的數據以Response的形式傳遞給爬蟲;
  3. 爬蟲針對Response中的數據進行分析,提取出相應的數據之後,將數據填充到Item中,而且傳遞給數據管道;
  4. 數據管道根據優先級順序對Item依次進行處理,通過驗證等後將Item中的數據保存到數據庫中;
  5. 繼續從調度器中獲取到下一個URL請求傳遞給下載器,重複第二步後的步驟;
  6. 調度器中沒有請求時,爬蟲引擎則中止程序;
相關文章
相關標籤/搜索