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) 因為有引擎的存在,所以可以在中間鍵進行一些處理