scrapy介紹
Scrapy是一種快速的高級(jí)Web爬行和Web抓取框架盟劫,用于抓取網(wǎng)站并從其頁(yè)面中提取結(jié)構(gòu)化數(shù)據(jù)退子。 它可用于各種用途泼返,從數(shù)據(jù)挖掘到監(jiān)控和自動(dòng)化測(cè)試
scrapy組件
- scrapy包含以下組件
- 引擎:負(fù)責(zé)數(shù)據(jù)和信號(hào)在不同組件中進(jìn)行傳遞
- 調(diào)度器:一個(gè)隊(duì)列最仑,存放引擎發(fā)送過(guò)來(lái)的requests請(qǐng)求
- 下載器:下載引擎發(fā)送過(guò)來(lái)的requests梦重,并把響應(yīng)發(fā)還給引擎
- spider:把引擎發(fā)送過(guò)來(lái)的response進(jìn)行解析仑乌,提取url百拓,并把結(jié)果交還給引擎
- 管道:處理引擎發(fā)送過(guò)來(lái)的數(shù)據(jù)琴锭,例如數(shù)據(jù)的存儲(chǔ)
- 下載中間件:自定義下載擴(kuò)展,例如設(shè)置代理衙传,cookies
- 爬蟲(chóng)中間件:自定義requests和進(jìn)行response的過(guò)濾
- 調(diào)度中間件:介于引擎和調(diào)度器之間决帖,從引擎發(fā)送到調(diào)度的請(qǐng)求和響應(yīng)。
scrapy的工作流程
- 首先爬蟲(chóng)將需要發(fā)送請(qǐng)求的url經(jīng)過(guò)引擎?zhèn)鬟f給調(diào)度器
- 調(diào)度器將url進(jìn)行排序,入隊(duì)等一系列處理后蓖捶,經(jīng)引擎地回,下載中間件傳遞給下載器
- 下載器向web服務(wù)器發(fā)起http請(qǐng)求,并接收下載響應(yīng)俊鱼,將響應(yīng)經(jīng)引擎刻像,爬蟲(chóng)中間件傳遞給爬蟲(chóng)
- 爬蟲(chóng)處理響應(yīng),提取頁(yè)面數(shù)據(jù)并將數(shù)據(jù)經(jīng)引擎?zhèn)鬟f給管道進(jìn)行數(shù)據(jù)的下一步處理并闲,例如數(shù)據(jù)的過(guò)濾细睡,去重,存儲(chǔ)
- 提取新的url重新經(jīng)引擎交給調(diào)度器進(jìn)行下一個(gè)循環(huán)帝火,直到?jīng)]有待爬取的url為止溜徙。
that's all