一 . scrapy的介紹
1. 什么是scrapy?
(1) Scrapy是用純Python實(shí)現(xiàn)一個(gè)為了爬取網(wǎng)站數(shù)據(jù)闲询、提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架,用途非常廣泛棋恼。
(2) 框架的力量哪审,用戶只需要定制開發(fā)幾個(gè)模塊就可以輕松的實(shí)現(xiàn)一個(gè)爬蟲塘揣,用來(lái)抓取網(wǎng)頁(yè)內(nèi)容以及各種圖片朝捆,非常之方便百炬。
(3) Scrapy 使用了 Twisted['tw?st?d] 異步網(wǎng)絡(luò)框架來(lái)處理網(wǎng)絡(luò)通訊褐隆,可以加快我們的下載速度剖踊,不用自己去實(shí)現(xiàn)異步框架,并且包含了各種中間件接口德澈,可以靈活的完成各種需求歇攻。
2. scrapy框架的流程結(jié)構(gòu)圖
各個(gè)功能的簡(jiǎn)介:
(1) Scrapy Engine(引擎): 負(fù)責(zé)Spider掉伏、ItemPipeline、Downloader澳窑、Scheduler中間的通訊,信號(hào)摊聋、數(shù)據(jù)傳遞等鸡捐。
(2) Scheduler(調(diào)度器): 它負(fù)責(zé)接受引擎發(fā)送過(guò)來(lái)的Request請(qǐng)求,并按照一定的方式進(jìn)行整理排列麻裁,入隊(duì)箍镜,當(dāng)引擎需要時(shí),交還給引擎煎源。
(3)Downloader(下載器):負(fù)責(zé)下載Scrapy Engine(引擎)發(fā)送的所有Requests請(qǐng)求色迂,并將其獲取到的Responses交還給Scrapy Engine(引擎),由引擎交給Spider來(lái)處理手销,
(4)Spider(爬蟲):它負(fù)責(zé)處理所有Responses,從中分析提取數(shù)據(jù)歇僧,獲取Item字段需要的數(shù)據(jù),并將需要跟進(jìn)的URL提交給引擎锋拖,再次進(jìn)入Scheduler(調(diào)度器)诈悍,
(5) Item Pipeline(管道):它負(fù)責(zé)處理Spider中獲取到的Item,并進(jìn)行進(jìn)行后期處理(詳細(xì)分析兽埃、過(guò)濾侥钳、存儲(chǔ)等)的地方.
(6)Downloader Middlewares(下載中間件):你可以當(dāng)作是一個(gè)可以自定義擴(kuò)展下載功能的組件。
(7)Spider Middlewares(Spider中間件):你可以理解為是一個(gè)可以自定擴(kuò)展和操作引擎和Spider中間通信的功能組件(比如進(jìn)入Spider的Responses;和從Spider出去的Requests)
3. 怎樣安裝scrapy?
sudo pip3 install scrapy