網(wǎng)絡(luò)爬蟲項(xiàng)目概要_第1頁(yè)
網(wǎng)絡(luò)爬蟲項(xiàng)目概要_第2頁(yè)
網(wǎng)絡(luò)爬蟲項(xiàng)目概要_第3頁(yè)
網(wǎng)絡(luò)爬蟲項(xiàng)目概要_第4頁(yè)
網(wǎng)絡(luò)爬蟲項(xiàng)目概要_第5頁(yè)
已閱讀5頁(yè),還剩9頁(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)介

1、Linux 實(shí)訓(xùn)項(xiàng)目網(wǎng)絡(luò)爬蟲系統(tǒng)概要1、什么是爬蟲是一個(gè)軟件機(jī)器人,是可控的,可以可以從互聯(lián)網(wǎng)上抓取我們所需的資源。爬蟲是搜索引擎后臺(tái)的第一個(gè)子系統(tǒng),數(shù)據(jù)入口之一。2、爬蟲能做什么搜索引擎的基礎(chǔ)應(yīng)用抓取大數(shù)據(jù)的一種手段網(wǎng)頁(yè)下載器網(wǎng)店秒殺3、關(guān)于項(xiàng)目時(shí)間安排: 4 天關(guān)于需求、設(shè)計(jì)、編碼、測(cè)試、集成需求:設(shè)計(jì):分為業(yè)務(wù)設(shè)計(jì)和技術(shù)設(shè)計(jì)。業(yè)務(wù)設(shè)計(jì)是業(yè)務(wù)層的方案。對(duì)我們軟件設(shè)計(jì)師來(lái)講, 業(yè)務(wù)就是我們的系統(tǒng)想要完成一個(gè)工作, 要經(jīng)過(guò)哪些步驟或流技術(shù)設(shè)計(jì):關(guān)于框架和處理流程,注意要采用面向?qū)ο蟮乃季S方式。編碼:使用基本的技術(shù)細(xì)節(jié)進(jìn)行系統(tǒng)實(shí)現(xiàn)測(cè)試:對(duì)是對(duì)我們系統(tǒng)可靠性的一個(gè)監(jiān)測(cè)集成:將每個(gè)程序員開發(fā)的模塊或

2、子系統(tǒng)合成為一個(gè)完成的系統(tǒng)思維方式:線性思維方式與發(fā)散思維方式。軟件開發(fā)要掌握的思想:模塊思維漸進(jìn)式開發(fā)4、需求:自動(dòng)抓取網(wǎng)絡(luò)資源的軟件。1、資源是什么 網(wǎng)頁(yè)、圖片、音樂(lè)、視頻等2、自動(dòng)化是什么樣子一旦運(yùn)行就不需要更多的干預(yù)。生成需求說(shuō)明文檔。內(nèi)容:對(duì)需求中不明確或不完善的說(shuō)明進(jìn)行解釋。功能點(diǎn)、附加要求、性能要求等5、設(shè)計(jì)業(yè)務(wù)設(shè)計(jì):如何思考并完成設(shè)計(jì)注意:從頂層開始思考并設(shè)計(jì),避免過(guò)早的陷入細(xì)節(jié)互聯(lián)網(wǎng)f粗淺的數(shù)據(jù)流設(shè)計(jì)處理流程:1、得到爬取種子(URL2、根據(jù)爬取種子下載資源(頁(yè)面)3、解析頁(yè)面,提取更多的URL4、對(duì)頁(yè)面做持久化操作5、根據(jù)提取的URL再進(jìn)行下載操作6重復(fù)第2步到第5步系統(tǒng)設(shè)

3、計(jì):互聯(lián)網(wǎng)系統(tǒng)結(jié)構(gòu)圖注意:設(shè)計(jì)階段必不可少 設(shè)計(jì)可以使我們的思路更清晰,可以提高工作效率,可以提高代碼質(zhì)量 詳細(xì)設(shè)計(jì):注意:對(duì)系統(tǒng)或模塊設(shè)計(jì)要有輸入和輸出。控制器模塊控制器由三個(gè)模塊組成:1、配置文件處理模塊:從配置文件中讀取配置項(xiàng),提供配置項(xiàng)的提取接口2、URL維護(hù)模塊:負(fù)責(zé)維護(hù)URL庫(kù),提供如下功能a)輸入新的URLb)輸出一個(gè)未被抓取的 URLc)負(fù)責(zé)維護(hù)URL的抓取狀態(tài)3、任務(wù)調(diào)度模塊a)負(fù)責(zé)協(xié)調(diào)控制器的流程b)負(fù)責(zé)調(diào)用其他系統(tǒng)模塊完成工作4、維護(hù)URL列表數(shù)據(jù)結(jié)構(gòu)6控制器設(shè)計(jì)配置文件解析模塊配置文件是以文件形式保存程序運(yùn)行時(shí)必要的參數(shù),減少輸入時(shí)的繁瑣過(guò)程文件類型是文本文件,內(nèi)容一般

4、以鍵值對(duì)形式出現(xiàn)。概要設(shè)計(jì):配置文件內(nèi)容:key=value 形式注釋規(guī)則:注釋字符串前以“ #”標(biāo)記。配置項(xiàng)設(shè)置:項(xiàng)目字段并發(fā)任務(wù)數(shù)job_ numurl種子seeddeeps抓取深度輸出日志的等級(jí)log_level模塊存放路徑(唯一)Module_path模塊名稱(模塊文件名,可以多個(gè))Module_ name允許抓取的資源類 型(多個(gè),文件后 綴)file_type模塊詳細(xì)設(shè)計(jì):操作:1、讀取配置文件2、得到配置文件選項(xiàng)的值(鍵值)3、初始化ptivate:1、o文件2、維護(hù).so文件中的接口函數(shù)設(shè)計(jì)原則:1、一個(gè)功能一個(gè)模塊2、可以自我維護(hù)a)維護(hù)版本號(hào)b)知道自己的名稱c)維護(hù)本模塊

5、內(nèi)部的接口d) 可以對(duì)模塊進(jìn)行初始化設(shè)計(jì)模塊的描述結(jié)構(gòu):字段名稱主版本號(hào)versi on次版本號(hào)subver模塊名稱n ame入口函數(shù)指針in t(*ha ndle)(void*);初始化函數(shù)指針in t(*i ni t)(Module*);設(shè)計(jì)入口函數(shù)指針原型in t(*ha ndle)(void*);設(shè)計(jì)初始化函數(shù)指針原型in t(*i ni t)(Module*);模塊管理器設(shè)計(jì):1載入模塊的操作Int Load (char* path, char* name);Module* getModule(char* n ame);載入模塊操作的處理流程:1 通過(guò)路徑找到模塊文件 (.so)2

6、調(diào)用 dlopen 打開動(dòng)態(tài)庫(kù)( .so )3 使用動(dòng)態(tài)庫(kù)4 關(guān)閉動(dòng)態(tài)庫(kù)文件7、下載器設(shè)計(jì)下載器模塊分為 socket 功能封裝與 Http 功能模塊http 協(xié)議對(duì)資源請(qǐng)求的操作 get 指令HTTP頭描述:http 頭以文本形式體現(xiàn)在 http 協(xié)議包中HTTP包的內(nèi)容由HTTP頭進(jìn)行描述,描述的格式:一條數(shù)據(jù)一行,每條描述以描述字段名稱開頭,Socket 功能框架設(shè)計(jì):1 初始化 socket2 向服務(wù)器發(fā)送請(qǐng)求3 接受服務(wù)器反饋的數(shù)據(jù)4 設(shè)置 socket 模式把socket句柄注冊(cè)到epoll處理事件中。(在主流程中)HTTP協(xié)議處理模塊1解析頭2組裝頭提取HTTP數(shù)據(jù)內(nèi)容(單獨(dú)一個(gè)

7、模塊)設(shè)計(jì)兩個(gè)模塊:文本處理模塊(html格式),二進(jìn)制處理模塊(image/jpg/png等各式),還可以繼續(xù)添加其他文件處理模塊(PDF流媒體等)需要了解的相關(guān)知識(shí):1 http協(xié)議(可以通過(guò)查詢RFC協(xié)議文檔了解更多)RFC文檔是用來(lái)解釋網(wǎng)絡(luò)協(xié)議的一種 文檔集合GET旨令請(qǐng)求頭的結(jié)構(gòu)反饋頭的結(jié)構(gòu)2http協(xié)議傳輸文件的模式http協(xié)議描述8頁(yè)面解析器設(shè)計(jì)html 文檔,是一種標(biāo)記性語(yǔ)言 對(duì)頁(yè)面解析的目的:得到頁(yè)面中存在的下級(jí) URLURL保存在A標(biāo)簽的href屬性中可以通過(guò)正則表達(dá)式提取頁(yè)面中的 URL。注意提取到的URL深度。頁(yè)面解析的處理流程:1 得到下載的頁(yè)面2得到頁(yè)面對(duì)應(yīng)的URL

8、結(jié)構(gòu)體(用于得到當(dāng)前頁(yè)面的深度)(注意判斷是否已經(jīng)達(dá)到最大深度)3使用正則表達(dá)式得到頁(yè)面中所有的 URL列表4處理URL中的相對(duì)路徑5 一個(gè)細(xì)節(jié):把當(dāng)前頁(yè)面深度加一,生成并填充URL結(jié)構(gòu)體6把得到的URL列表回寫到URL管理器中(生成列表數(shù)據(jù),以返回值形式回傳給上層代碼)9 持久化器設(shè)計(jì)仍然以模塊形式生成 分為網(wǎng)頁(yè)保存模塊和圖片保存模塊注意,如果涉及到網(wǎng)頁(yè)編碼需要進(jìn)行轉(zhuǎn)碼操作(本系統(tǒng)不對(duì)此進(jìn)行操作) 處理流程1 得到頁(yè)面的數(shù)據(jù)流或在內(nèi)存緩沖區(qū)的數(shù)據(jù)2得到當(dāng)前頁(yè)面的URL苗述結(jié)構(gòu)體3 生成保存目錄(目錄已存在和未存在的處理情況)4 把文件按照指定模式寫入磁盤系統(tǒng)5 向主處理流程發(fā)送一個(gè)反饋,表示當(dāng)前頁(yè)面處理的進(jìn)度系統(tǒng)的核心代碼:1、

溫馨提示

  • 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)論