這篇文章將為大家詳細(xì)講解有關(guān)Scrapy網(wǎng)絡(luò)爬蟲框架的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、欒城網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城系統(tǒng)網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為欒城等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。1、Scrapy爬蟲框架
Scrapy是一個(gè)使用Python編程語言編寫的爬蟲框架,任何人都可以根據(jù)自己的需求進(jìn)行修改,并且使用起來非常的方便。它可以應(yīng)用在數(shù)據(jù)采集、數(shù)據(jù)挖掘、網(wǎng)絡(luò)異常用戶檢測、存儲(chǔ)數(shù)據(jù)等方面。
Scrapy使用了Twisted異步網(wǎng)絡(luò)庫來處理網(wǎng)絡(luò)通訊。整體架構(gòu)大致如下圖所示。
2、由上圖可知Scrapy爬蟲框架主要由5個(gè)部分組成,分別是:Scrapy Engine(Scrapy引擎),Scheduler(調(diào)度器),Downloader(下載器),Spiders(蜘蛛),Item Pipeline(項(xiàng)目管道)。爬取過程是Scrapy引擎發(fā)送請求,之后調(diào)度器把初始URL交給下載器,然后下載器向服務(wù)器發(fā)送服務(wù)請求,得到響應(yīng)后將下載的網(wǎng)頁內(nèi)容交與蜘蛛來處理,爾后蜘蛛會(huì)對網(wǎng)頁進(jìn)行詳細(xì)的解析。蜘蛛分析的結(jié)果有兩種:一種是得到新的URL,之后再次請求調(diào)度器,開始進(jìn)行新一輪的爬取,不斷的重復(fù)上述過程;另一種是得到所需的數(shù)據(jù),之后會(huì)轉(zhuǎn)交給項(xiàng)目管道繼續(xù)處理。項(xiàng)目管道負(fù)責(zé)數(shù)據(jù)的清洗、驗(yàn)證、過濾、去重和存儲(chǔ)等后期處理,最后由Pipeline輸出到文件中,或者存入數(shù)據(jù)庫等。
3、這五大組件及其中間件的功能如下:
1) Scrapy引擎:控制整個(gè)系統(tǒng)的數(shù)據(jù)處理流程,觸發(fā)事務(wù)處理流程,負(fù)責(zé)串聯(lián)各個(gè)模塊
2) Scheduler(調(diào)度器):維護(hù)待爬取的URL隊(duì)列,當(dāng)接受引擎發(fā)送的請求時(shí),會(huì)從待爬取的URL隊(duì)列中取出下一個(gè)URL返回給調(diào)度器。
3) Downloader(下載器):向該網(wǎng)絡(luò)服務(wù)器發(fā)送下載頁面的請求,用于下載網(wǎng)頁內(nèi)容,并將網(wǎng)頁內(nèi)容交與蜘蛛去處理。
4) Spiders(蜘蛛):制定要爬取的網(wǎng)站地址,選擇所需數(shù)據(jù)內(nèi)容,定義域名過濾規(guī)則和網(wǎng)頁的解析規(guī)則等。
5) Item Pipeline(項(xiàng)目管道):處理由蜘蛛從網(wǎng)頁中抽取的數(shù)據(jù),主要任務(wù)是清洗、驗(yàn)證、過濾、去重和存儲(chǔ)數(shù)據(jù)等。
6) 中間件(Middlewares):中間件是處于Scrapy引擎和Scheduler,Downloader,Spiders之間的構(gòu)件,主要是處理它們之間的請求及響應(yīng)。
Scrapy爬蟲框架可以很方便的完成網(wǎng)上數(shù)據(jù)的采集工作,簡單輕巧,使用起來非常方便。
4、 基于Scrapy的網(wǎng)絡(luò)爬蟲設(shè)計(jì)與實(shí)現(xiàn)
在了解Scrapy爬蟲原理及框架的基礎(chǔ)上,本節(jié)簡要介紹Scrapy爬蟲框架的數(shù)據(jù)采集過程。
4.1 建立爬蟲項(xiàng)目文件
基于scrapy爬蟲框架,只需在命令行中輸入“scrapy startproject article”命令,之后一個(gè)名為article的爬蟲項(xiàng)目將自動(dòng)創(chuàng)建。首先進(jìn)入到article文件夾下,輸入命令“cd article”,之后通過“dir”查看目錄,也可以通過“tree /f”生成文件目錄的樹形結(jié)構(gòu),如下圖所示,可以很清晰的看到Scrapy創(chuàng)建命令生成的文件。
頂層的article文件夾是項(xiàng)目名,第二層中包含的是一個(gè)與項(xiàng)目名同名的文件夾article和一個(gè)文件scrapy.cfg,這個(gè)與項(xiàng)目同名的文件夾article是一個(gè)模塊,所有的項(xiàng)目代碼都在這個(gè)模塊內(nèi)添加,而scrapy.cfg文件是整個(gè)Scrapy項(xiàng)目的配置文件。第三層中有5個(gè)文件和一個(gè)文件夾,其中__init__.py是個(gè)空文件,作用是將其上級目錄變成一個(gè)模塊;items.py是定義儲(chǔ)對象的文件,決定爬取哪些項(xiàng)目;middlewares.py文件是中間件,一般不用進(jìn)行修改,主要負(fù)責(zé)相關(guān)組件之間的請求與響應(yīng);pipelines.py是管道文件,決定爬取后的數(shù)據(jù)如何進(jìn)行處理和存儲(chǔ);settings.py是項(xiàng)目的設(shè)置文件,設(shè)置項(xiàng)目管道數(shù)據(jù)的處理方法、爬蟲頻率、表名等;spiders文件夾中放置的是爬蟲主體文件(用于實(shí)現(xiàn)爬蟲邏輯)和一個(gè)__init__.py空文件。
4.2 之后開始進(jìn)行網(wǎng)頁結(jié)構(gòu)與數(shù)據(jù)分析、修改Items.py文件、編寫hangyunSpider.py文件、修改pipelines.py文件、修改settings.py文件,這些步驟的具體操作后期會(huì)文章專門展開,在此不再贅述。
4.3 執(zhí)行爬蟲程序
修改上述四個(gè)文件之后,在Windows命令符窗口中輸入cmd 命令進(jìn)入到爬蟲所在的路徑,并執(zhí)行“scrapy crawl article”命令,這樣就可以運(yùn)行爬蟲程序了,最后保存數(shù)據(jù)到本地磁盤上。
關(guān)于“Scrapy網(wǎng)絡(luò)爬蟲框架的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)站名稱:Scrapy網(wǎng)絡(luò)爬蟲框架的示例分析-創(chuàng)新互聯(lián)
標(biāo)題URL:http://jinyejixie.com/article40/ccsjeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、商城網(wǎng)站、服務(wù)器托管、響應(yīng)式網(wǎng)站、動(dòng)態(tài)網(wǎng)站、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)