Scrapy五大核心组件简介
五大核心組件
scrapy框架主要由五大組件組成,他們分別是調(diào)度器(Scheduler),下載器(Downloader),爬蟲(chóng)(Spider),和實(shí)體管道(Item Pipeline),Scrapy引擎(Scrapy Fngine)
下面我們說(shuō)說(shuō)他們各自的作用:
調(diào)度器
用來(lái)接受引擎發(fā)過(guò)來(lái)的請(qǐng)求,由過(guò)濾器重復(fù)的url并將其壓入隊(duì)列中,在引擎再次請(qǐng)求的時(shí)候返回,可以想象成一個(gè)URL(抓取網(wǎng)頁(yè)的網(wǎng)址或者說(shuō)是鏈接)的優(yōu)先隊(duì)列,由他決定下一個(gè)要抓取的網(wǎng)址是什么,用戶可以根據(jù)自己的需求定制調(diào)度器
下載器
下載器,是所有組件中負(fù)擔(dān)最大的,它用于高速地下載網(wǎng)絡(luò)上的資源,Scrapy的下載器代碼不會(huì)太復(fù)雜,但效率高(原因:Scrapy下載器是建立在twisted這個(gè)高效的異步模型上的)爬蟲(chóng)
爬蟲(chóng)是主要干活的,用戶最關(guān)心的部分, 它可以生成url, 并從特定的url中提取自己需要的信息, 即所謂的實(shí)體(Item). 用戶也可以從中提取出鏈接, 讓Scrapy繼續(xù)抓取下一個(gè)頁(yè)面.實(shí)體管道
負(fù)責(zé)處理爬蟲(chóng)從網(wǎng)頁(yè)中抽取的實(shí)體, 主要的功能是持久化實(shí)體、驗(yàn)證實(shí)體的有效性、清除不需要的信息. 當(dāng)頁(yè)面被爬蟲(chóng)解析后, 將被發(fā)送到項(xiàng)目管道, 并經(jīng)過(guò)幾個(gè)特定的次序處理數(shù)據(jù).引擎
Scrapy引擎是整個(gè)框架的核心。它用來(lái)控制調(diào)試器、下載器、爬蟲(chóng)。實(shí)際上,引擎相當(dāng)于計(jì)算機(jī)的CPU,它控制著整個(gè)流程。對(duì)整個(gè)系統(tǒng)的數(shù)據(jù)流進(jìn)行處理, 觸發(fā)事務(wù)(框架核心).工作流程
步驟詳解:
1.spider中的url被封裝成請(qǐng)求對(duì)象交給引擎(每一個(gè)對(duì)應(yīng)一個(gè)請(qǐng)求對(duì)象)
2.引擎拿到請(qǐng)求對(duì)象之后,將全部交給調(diào)度器
3.調(diào)度器鬧到所有請(qǐng)求對(duì)象后,通過(guò)內(nèi)部的過(guò)濾器過(guò)濾掉重復(fù)的url,最后將去重后的所有url對(duì)應(yīng)的請(qǐng)求對(duì)象壓入到隊(duì)列中,隨后調(diào)度器調(diào)度出其中一個(gè)請(qǐng)求對(duì)象,并將其交給引擎
4.引擎將調(diào)度器調(diào)度出的請(qǐng)求對(duì)象交給下載器
5.下載器拿到該請(qǐng)求對(duì)象去互聯(lián)網(wǎng)中下載數(shù)據(jù)
6.數(shù)據(jù)下載成功后會(huì)被封裝到response中,隨后response會(huì)被交給下載器
7.下載器將response交給引擎
8.引擎將response交給spiders
9.spiders拿到response后調(diào)用回調(diào)方法進(jìn)行數(shù)據(jù)解析,解析成功后生成item,隨后spiders將item交給引擎
10引擎將item交給管道,管道拿到item后進(jìn)行數(shù)據(jù)的持久化存儲(chǔ)
轉(zhuǎn)載于:https://www.cnblogs.com/tianshuai1/p/10871961.html
總結(jié)
以上是生活随笔為你收集整理的Scrapy五大核心组件简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 修改IIS默认的30M
- 下一篇: 微信消息类型和事件类型