1. 程式人生 > 實用技巧 >列舉幾個簡單的例子來更好的理解scrapy工作的原理

列舉幾個簡單的例子來更好的理解scrapy工作的原理

說明:瞭解爬蟲的可能都會知道,在爬蟲裡,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框架,還需要進一步的學習......

關注我獲取更多內容
注:轉載還請註明出處,謝謝_