
說明:了解爬蟲的可能都會知道,在爬蟲里,requests入門簡單,即使是沒有基礎的小白,學個幾天也能簡單的去請求網站,但是scrapy就相對來說就比較難,本片文章能是列舉幾個簡單的例子去理解的scrapy作業的原理,理解了scrapy作業的原理之后,學起來就會簡單很多
適用:本篇文章適合有一點的爬蟲基礎但又是剛剛接觸或者想要學習scrapy的同學
scrapy框架:
scrapy是Python開發的一個快速、高層次的螢屏抓取和web抓取框架,用于抓取web站點并從頁面中提取結構化的資料,Scrapy用途廣泛,可以用于資料挖掘、監測和自動化測驗,
scrapy框架的結構:
scrapy是一個5+2結構,見下圖
5表示:
1. spiders(蜘蛛)
2. engine(引擎)
3. downloader(下載器)
4. scheduler(調度器)
5. item pipeline(專案管道)
2表示:
1. downloder middlewares(下載中間件)
2. spider middlewares(蜘蛛中間件)
[圖片上傳失敗...(image-946ae8-1545285941079)]
接下來我們就列舉幾個列子來方便的理解scrapy原理:
先說一下爬蟲,對于一個爬蟲,整體來看,分為三個部分:
-
請求
就是請求網站,分為get和post
-
決議
就是決議網站回傳的response,即對response進行進一步處理
-
存盤
就是把處理過的資訊存盤到檔案,或者資料庫的操作
而scrapy框架也無外乎也是這分三個部分,下面是4個情景設定,都是學習scrapy剛開始會遇到的,在每個設定后面對其作業的原理給出了簡單解釋,之所以不寫太過詳細,是為了方便大家理解,讓大家在大腦里面對scrapy框架有大致的輪廓:
設定一:
初始url:1個
是否決議:否
是否存盤資料:否
(1)spider將初始url經過engine傳遞給scheduler,形成調度佇列(1個requests)
(2)scheduler將requests經過engine調度給downloader進行資料下載,形成原始資料
設定二:
初始url:1個
是否決議:是
是否存盤資料:否
(1)spider將初始url經過engine傳遞給scheduler,形成調度佇列(1個requests)
(2)scheduler將requests經過engine調度給downloader進行資料下載,形成原始資料
(3)將原始資料經過engine傳遞給spider進行決議
設定三:
初始url:1個
是否決議:是
是否存盤資料:是
(1)spider將初始url經過engine傳遞給scheduler,形成調度佇列(多個requests)
(2)scheduler將第一個requests經過engine調度給downloader進行資料下載,形成原始資料
(3)將原始資料經過engine傳遞給spider進行決議
(4)將決議后的資料經過engine傳給item pipeline進行資料存盤
設定四:
初始url:多個
是否決議:是
是否存盤資料:是
(1)spider將初始url經過engine傳遞給scheduler,形成調度佇列(多個requests)
(2)scheduler將第一個requests經過engine調度給downloader進行資料下載,形成原始資料
(3)將原始資料經過engine傳遞給spider進行決議
(4)將決議后的資料經過engine傳給item pipeline進行資料存盤
(5)scheduler將下一個requests經過engine調度給downloader進行資料下載,形成原始資料......#重復(2)到(4)步,直到scheduler中沒有更多的requests
本篇文章只是對scrapy框架的的原理進行的簡單的講解,想要精通scrapy框架,還需要進一步的學習......
關注我獲取更多內容
注:轉載還請注明出處,謝謝_
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/237887.html
標籤:其他
上一篇:4.分組聚合
下一篇:5.轉換與處理時間序列資料
