scrapy之五大核心組件

scrapy之五大核心組件

  scrapy一共有五大核心組件,分別爲引擎下載器調度器spider(爬蟲文件)管道服務器

  爬蟲文件的做用數據結構

    a. 解析數據框架

    b. 發請求scrapy

  調度器ide

    a. 隊列url

      隊列是一種數據結構,擁有先進先出的特性。中間件

    b. 過濾器對象

      過濾器適用於過濾的,過濾重複的請求。blog

    調度器是用來調度請求對象的。隊列

  引擎

    全部的實例化的過程都是由引擎來作的,根據那到的數據流進行判斷實例化的時間。

    處理流數據

    觸發事物

  scrapy五大核心組件之間的工做流程

  scrapy框架得的五大組件之間的工做流程上圖所示:

  當咱們執行爬蟲文件的時候,這五大組件就已經開始工做了 。其中,

  1  首先,咱們最原始的起始url是在咱們爬蟲文件中的,一般狀況系,起始的url只有一個,當咱們的爬蟲文件執行的時候,首先對起始url發送請求,將起始url封裝成了請求對象,將請求對象傳遞給了引擎,引擎就收到了爬蟲文件給它發送的封裝了起始URL的請求對象。咱們在爬蟲文件中發送的請求並無拿到響應(沒有立刻拿到響應),只有請求發送到服務器端,服務器端返回響應,才能拿到響應。

  2  引擎拿到這個請求對象之後,又將請求對象發送給了調度器,隊列接受到的請求都放到了隊列當中,隊列中可能存在多個請求對象,而後經過過濾器,去掉重複的請求

  3  調度器將過濾後的請求對象發送給了引擎,

  4  引擎將拿到的請求對象給了下載器

  5  下載器拿到請求後將請求拿到互聯網進行數據下載

  6  互聯網將下載好的數據發送給下載器,此時下載好的數據是封裝在響應對象中的

  7  下載器將響應對象發送給引擎,引擎接收到了響應對象,此時引擎中存儲了從互聯網中下載的數據。

  8  最終,這個響應對象又由引擎給了spider(爬蟲文件),由parse方法中的response對象來接收,而後再parse方法中進行解析數據,此時可能解析到新的url,而後再次發請求;也可能解析到相關的數據,而後將數據進行封裝獲得item,

  9  spider將item發送給引擎,

  10  引擎將item發送給管道。

 

  其中,在引擎和下載中間還有一個下載器中間件,spider和引擎中間有爬蟲中間件,

  下載器中間件

    能夠攔截請求和響應對象,請求和響應交互的時候必定會通過下載中間件,能夠處理請求和響應。

  爬蟲中間件

    攔截請求和響應,對請求和響應進行處理。

 

0

相關文章
相關標籤/搜索