scrapy框架的概念和流程

1.scrapy框架的概念:

文檔地址:http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html
Scrapy 使用了Twisted['twɪstɪd]異步網絡框架,可以加快我們的下載速度。
Scrapy是一個爲了爬取網站數據,提取結構性數據而編寫的應用框架,我們只需要實現少量的代碼,就能夠快速的抓取。

2.異步和非阻塞的區別

在這裏插入圖片描述

  1. 異步:調用在發出之後,這個調用就直接返回,不管有無結果;異步是過程。
  2. 非阻塞:關注的是程序在等待調用結果(消息,返回值)時的狀態,指在不能立刻得到結果之前,該調用不會阻塞當前線程。

3.scrapy的工作流程

3.1 爬蟲流程
在這裏插入圖片描述
3.2 上面的流程可以改寫爲
在這裏插入圖片描述
3.3 scrapy的流程
在這裏插入圖片描述

其流程可以描述如下:

  1. 調度器把requests–>引擎–>下載中間件—>下載器
  2. 下載器發送請求,獲取響應---->下載中間件---->引擎—>爬蟲中間件—>爬蟲
  3. 爬蟲提取url地址,組裝成request對象---->爬蟲中間件—>引擎—>調度器
  4. 爬蟲提取數據—>引擎—>管道
  5. 管道進行數據的處理和保存

注意:

  1. 圖中綠色線條的表示數據的傳遞
  2. 注意圖中中間件的位置,決定了其作用
  3. 注意其中引擎的位置,所有的模塊之前相互獨立,只和引擎進行交互

3.4 scrapy中每個模塊的具體作用
在這裏插入圖片描述
scrapy中每個模塊的作用:

  1. 引擎(engine):負責數據和信號在不腰痛模塊間的傳遞
  2. 調度器(scheduler):實現一個隊列,存放引擎發過來的request請求對象
  3. 下載器(downloader):發送引擎發過來的request請求,獲取響應,並將響應交給引擎
  4. 爬蟲(spider):處理引擎發過來的response,提取數據,提取url,並交給引擎
  5. 管道(pipeline):處理引擎傳遞過來的數據,比如存儲 下載中間件(downloader middleware):可以自定義的下載擴展,比如設置代理ip 爬蟲中間件(spider middleware):可以自定義request請求和進行response過濾
發佈了140 篇原創文章 · 獲贊 56 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章