版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Python爬蟲基本框架運(yùn)行流程學(xué)習(xí)目標(biāo)2知識(shí)目標(biāo)●Python爬蟲通用框架●
Scrapy框架●PySpider框架能力目標(biāo)●掌握通用框架及流程●了解Scrapy框架●了解PySpider框架學(xué)習(xí)任務(wù)3初步探索Python爬蟲通用框架初步探索Scrapy框架初步探索PySpider框架掌握三大框架工作流程Python爬蟲通用框架Scrapy框架4目錄PySpider框架Python通用框架5通用爬蟲框架定義了編寫一個(gè)網(wǎng)絡(luò)爬蟲最基本的過程。一個(gè)通用的爬蟲框架通常包含待抓取的URL列表、已抓取的URL列表、URL下載器、URL解析器、數(shù)據(jù)庫等幾個(gè)模塊。根據(jù)任務(wù)的需求,還可以加入監(jiān)控模塊、定時(shí)啟動(dòng)模塊等。如圖所示,通用爬蟲框架示意圖。Python通用框架6通用框架工作流程:第一步:確定種子URL,并存入待抓取的URL列表;第二步:從待抓取的URL列表中隨機(jī)提取一個(gè)URL,發(fā)送到URL下載器;第三步:URL下載器開始下載頁面,如果下載成功,將頁面發(fā)送給URL解析器,同時(shí)把URL存入已抓取的URL列表;如果下載失敗,將URL重新存入待抓取的URL列表,重復(fù)第二步;第四步:URL解析器開始解析頁面,將獲得的新的URL存入待抓取的URL列表,同時(shí)將需要的、有價(jià)值的數(shù)據(jù)存入數(shù)據(jù)庫;第五步:重復(fù)第二至第四步,直到待抓取的URL列表為空。Scrapy框架7Scrapy是用python下的一個(gè)互聯(lián)網(wǎng)爬蟲應(yīng)用框架,它能夠爬取網(wǎng)站并抽取結(jié)構(gòu)化的數(shù)據(jù),它也能夠使用API獲取數(shù)據(jù)。Scrapy框架中有很多實(shí)用的內(nèi)置插件和中間件,如:cookiesandsessionhandling、user-agentspoofing、robots.txt、crawldepthrestriction等,這寫插件和中間件使得Scrapy框架的實(shí)用性更強(qiáng)。Scrapy框架的示意圖如圖所示。Scrapy框架8Scrapy框架工作流程:第一步:Spiders(爬蟲)將需要發(fā)送請求的URL(requests)經(jīng)ScrapyEngine(引擎)交給Scheduler(調(diào)度器);第二步:Scheduler(排序,入隊(duì))處理后,經(jīng)ScrapyEngine,DownloaderMiddlewares(可選,主要有User_Agent,Proxy代理)交給Downloader;第三步:Downloader向互聯(lián)網(wǎng)發(fā)送請求,并接收下載響應(yīng)(response)。將響應(yīng)(response)經(jīng)ScrapyEngine,SpiderMiddlewares(可選)交給Spiders;第四步:Spiders處理response,提取數(shù)據(jù)并將數(shù)據(jù)經(jīng)ScrapyEngine交給ItemPipeline保存(可以是本地,可以是數(shù)據(jù)庫)。提取URL重新經(jīng)ScrapyEngine交給Scheduler進(jìn)行下一個(gè)循環(huán)。直到無URL請求程序停止結(jié)束。PySpider框架9PySpider是國人用python編寫的一個(gè)功能強(qiáng)大的網(wǎng)絡(luò)爬蟲框架。Pyspider的架構(gòu)主要分為Scheduler(調(diào)度器)、Fetcher(抓取器)、Processer(處理器)三個(gè)部分,整個(gè)爬取過程受到Monitor(監(jiān)控器)的監(jiān)控,抓取的結(jié)果被ResultWorker(結(jié)果處理器)處理。Scheduler發(fā)起任務(wù)調(diào)度,F(xiàn)etcher負(fù)責(zé)抓取網(wǎng)頁內(nèi)容,Processer負(fù)責(zé)解析網(wǎng)頁內(nèi)容,然后將新生成的Request發(fā)給Scheduler進(jìn)行調(diào)度,將生成的提取結(jié)果輸出保存。PySpider框架10PySpider框架工作流程:第一步:每個(gè)Pyspider的項(xiàng)目對應(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ù),然后通過消息隊(duì)列的方式通知Scheduler當(dāng)前抓取任務(wù)執(zhí)行情況,并將新生成的抓取任務(wù)發(fā)送給Scheduler。如果生成了新的抓取結(jié)果,則將其發(fā)送到結(jié)果隊(duì)列等待ResultWorker處理;PySpider框架11PySpider框架工作流程:第四步:Scheduler接收到新的抓取任務(wù),然后查詢數(shù)據(jù)庫,判斷其如果是新的抓取任務(wù)或者是需要重試的任務(wù)就繼
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國新型顯示技術(shù)產(chǎn)業(yè)發(fā)展趨勢及投資風(fēng)險(xiǎn)評估報(bào)告
- 2025-2030中國中藥材產(chǎn)品行業(yè)市場深度調(diào)研及發(fā)展趨勢和前景預(yù)測研究報(bào)告
- 2025至2030中國生物醫(yī)藥創(chuàng)新藥研發(fā)市場現(xiàn)狀及投資戰(zhàn)略規(guī)劃分析報(bào)告
- 2025-2030中國虛擬偶像市場應(yīng)用發(fā)展分析與投資趨勢預(yù)判研究報(bào)告
- 2026民生銀行秋招筆試題及答案
- 評選方案策劃活動(dòng)內(nèi)容(3篇)
- 2026年綠色氫氨醇項(xiàng)目可行性研究報(bào)告
- 成語故事科學(xué)實(shí)驗(yàn)改編對小學(xué)生學(xué)習(xí)興趣的影響研究教學(xué)研究課題報(bào)告
- 高中物理教學(xué)中力學(xué)實(shí)驗(yàn)教學(xué)與理論教學(xué)的融合策略研究課題報(bào)告教學(xué)研究課題報(bào)告
- 大學(xué)安全教育課件
- 心房鈉尿肽基因敲除小鼠的繁殖和鑒定
- 母嬰護(hù)理職業(yè)道德課件
- 廣元市利州區(qū)何家坪石材廠飾面用灰?guī)r礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 保健按摩師初級(jí)試題
- 醫(yī)療廢物處理方案
- 船舶靠離泊作業(yè)風(fēng)險(xiǎn)辨識(shí)表
- 口腔頜面外科學(xué)(全)
- 安徽金軒科技有限公司 年產(chǎn)60萬噸硫磺制酸項(xiàng)目環(huán)境影響報(bào)告書
- 魔鬼理論之k線秘笈圖解課件
- 2023屆廣東省佛山市普通高中高三上學(xué)期教學(xué)質(zhì)量檢測(一模)物理試題含答案
- GB/T 9163-2001關(guān)節(jié)軸承向心關(guān)節(jié)軸承
評論
0/150
提交評論