python爬蟲(chóng)基本框架及框架運(yùn)行流程_第1頁(yè)
python爬蟲(chóng)基本框架及框架運(yùn)行流程_第2頁(yè)
python爬蟲(chóng)基本框架及框架運(yùn)行流程_第3頁(yè)
python爬蟲(chóng)基本框架及框架運(yùn)行流程_第4頁(yè)
python爬蟲(chóng)基本框架及框架運(yùn)行流程_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Python爬蟲(chóng)基本框架運(yùn)行流程學(xué)習(xí)目標(biāo)2知識(shí)目標(biāo)●Python爬蟲(chóng)通用框架●

Scrapy框架●PySpider框架能力目標(biāo)●掌握通用框架及流程●了解Scrapy框架●了解PySpider框架學(xué)習(xí)任務(wù)3初步探索Python爬蟲(chóng)通用框架初步探索Scrapy框架初步探索PySpider框架掌握三大框架工作流程Python爬蟲(chóng)通用框架Scrapy框架4目錄PySpider框架Python通用框架5通用爬蟲(chóng)框架定義了編寫(xiě)一個(gè)網(wǎng)絡(luò)爬蟲(chóng)最基本的過(guò)程。一個(gè)通用的爬蟲(chóng)框架通常包含待抓取的URL列表、已抓取的URL列表、URL下載器、URL解析器、數(shù)據(jù)庫(kù)等幾個(gè)模塊。根據(jù)任務(wù)的需求,還可以加入監(jiān)控模塊、定時(shí)啟動(dòng)模塊等。如圖所示,通用爬蟲(chóng)框架示意圖。Python通用框架6通用框架工作流程:第一步:確定種子URL,并存入待抓取的URL列表;第二步:從待抓取的URL列表中隨機(jī)提取一個(gè)URL,發(fā)送到URL下載器;第三步:URL下載器開(kāi)始下載頁(yè)面,如果下載成功,將頁(yè)面發(fā)送給URL解析器,同時(shí)把URL存入已抓取的URL列表;如果下載失敗,將URL重新存入待抓取的URL列表,重復(fù)第二步;第四步:URL解析器開(kāi)始解析頁(yè)面,將獲得的新的URL存入待抓取的URL列表,同時(shí)將需要的、有價(jià)值的數(shù)據(jù)存入數(shù)據(jù)庫(kù);第五步:重復(fù)第二至第四步,直到待抓取的URL列表為空。Scrapy框架7Scrapy是用python下的一個(gè)互聯(lián)網(wǎng)爬蟲(chóng)應(yīng)用框架,它能夠爬取網(wǎng)站并抽取結(jié)構(gòu)化的數(shù)據(jù),它也能夠使用API獲取數(shù)據(jù)。Scrapy框架中有很多實(shí)用的內(nèi)置插件和中間件,如:cookiesandsessionhandling、user-agentspoofing、robots.txt、crawldepthrestriction等,這寫(xiě)插件和中間件使得Scrapy框架的實(shí)用性更強(qiáng)。Scrapy框架的示意圖如圖所示。Scrapy框架8Scrapy框架工作流程:第一步:Spiders(爬蟲(chóng))將需要發(fā)送請(qǐng)求的URL(requests)經(jīng)ScrapyEngine(引擎)交給Scheduler(調(diào)度器);第二步:Scheduler(排序,入隊(duì))處理后,經(jīng)ScrapyEngine,DownloaderMiddlewares(可選,主要有User_Agent,Proxy代理)交給Downloader;第三步:Downloader向互聯(lián)網(wǎng)發(fā)送請(qǐng)求,并接收下載響應(yīng)(response)。將響應(yīng)(response)經(jīng)ScrapyEngine,SpiderMiddlewares(可選)交給Spiders;第四步:Spiders處理response,提取數(shù)據(jù)并將數(shù)據(jù)經(jīng)ScrapyEngine交給ItemPipeline保存(可以是本地,可以是數(shù)據(jù)庫(kù))。提取URL重新經(jīng)ScrapyEngine交給Scheduler進(jìn)行下一個(gè)循環(huán)。直到無(wú)URL請(qǐng)求程序停止結(jié)束。PySpider框架9PySpider是國(guó)人用python編寫(xiě)的一個(gè)功能強(qiáng)大的網(wǎng)絡(luò)爬蟲(chóng)框架。Pyspider的架構(gòu)主要分為Scheduler(調(diào)度器)、Fetcher(抓取器)、Processer(處理器)三個(gè)部分,整個(gè)爬取過(guò)程受到Monitor(監(jiān)控器)的監(jiān)控,抓取的結(jié)果被ResultWorker(結(jié)果處理器)處理。Scheduler發(fā)起任務(wù)調(diào)度,F(xiàn)etcher負(fù)責(zé)抓取網(wǎng)頁(yè)內(nèi)容,Processer負(fù)責(zé)解析網(wǎng)頁(yè)內(nèi)容,然后將新生成的Request發(fā)給Scheduler進(jìn)行調(diào)度,將生成的提取結(jié)果輸出保存。PySpider框架10PySpider框架工作流程:第一步:每個(gè)Pyspider的項(xiàng)目對(duì)應(yīng)一個(gè)Python腳本,該腳本中定義了一個(gè)Handler類,它有一個(gè)on_start()方法。爬取首先調(diào)用on_start()方法生成最初的抓取任務(wù),然后發(fā)送給Scheduler進(jìn)行調(diào)度;第二步:Scheduler將抓取任務(wù)分發(fā)給Fetcher進(jìn)行抓取,F(xiàn)etcher執(zhí)行并得到響應(yīng),隨后將響應(yīng)發(fā)送給Processer;第三步:Processer處理響應(yīng)并提取出新的URL生成新的抓取任務(wù),然后通過(guò)消息隊(duì)列的方式通知Scheduler當(dāng)前抓取任務(wù)執(zhí)行情況,并將新生成的抓取任務(wù)發(fā)送給Scheduler。如果生成了新的抓取結(jié)果,則將其發(fā)送到結(jié)果隊(duì)列等待ResultWorker處理;PySpider框架11PySpider框架工作流程:第四步:Scheduler接收到新的抓取任務(wù),然后查詢數(shù)據(jù)庫(kù),判斷其如果是新的抓取任務(wù)或者是需要重試的任務(wù)就繼

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論