1. 程式人生 > >Scrapy框架的學習(1.scrapy的概念以及scrapy的工作流程)

Scrapy框架的學習(1.scrapy的概念以及scrapy的工作流程)

 scrapy的概念

1.為什麼要學習Scrapy?

     因為會讓我們的爬蟲更快、更強

2.什麼是scrapy?

     (1) Scrapy是一個為了爬取網站資料,提取結構性資料而編寫的應用框架,我們只需要實現少量的程式碼,就能夠快速的抓取

    *** 框架:特定需求下的所有功能***  ,  知道框架和模組的區別

    (2)Scrapy 使用了 Twisted['twɪstɪd]非同步

網路框架,可以加快我們的下載速度。

    (3)Scrapy的官方文件    http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html

3.  非同步與非阻塞的區別    ( 補充)

     

   (1)   同步或非同步指的是這樣的一個過程  

          阻塞或非阻塞指的是拿到結果之前的狀態

 (2)   非同步呼叫發出之後,這個呼叫就直接返回,不管有無結果

  (3)非阻塞:關注的是程式在等待呼叫結果(訊息,返回值)時的狀態指在不能立刻得到結果之前,該呼叫不會阻塞當前執行緒

 scrapy的工作流程

1.  之前使用的爬蟲流程,獲取響應內容,提取資料、儲存資料等

    如圖:

2.scrapy的爬蟲流程
  

  圖的解釋:

    

    (1)  中間  Scrapy Engline (scrapy 引擎)  : 這個四個大模組是獨立的,彼此之間沒有聯絡,之間的聯絡都是通過

         scrapy引擎來進行排程,scrapy引擎讓誰執行誰就執行,類似於指揮交通的交警

   (2)Downloader Middlewares (下載中間鍵):引擎會先把Requets物件交給下載中間鍵再然後交給Downloader

   (3) Spider Middlewares (爬蟲中間鍵) : 引擎會先把response交給爬蟲中間鍵再交給Spiders

    (4)  因為有引擎的存在,所以可以在中間鍵進行一些處理