




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Linux 實訓項目網絡爬蟲系統(tǒng)概要1、什么是爬蟲是一個軟件機器人,是可控的,可以可以從互聯(lián)網上抓取我們所需的資源。爬蟲是搜索引擎后臺的第一個子系統(tǒng),數據入口之一。2、爬蟲能做什么搜索引擎的基礎應用抓取大數據的一種手段網頁下載器網店秒殺3、關于項目時間安排: 4 天關于需求、設計、編碼、測試、集成需求:設計:分為業(yè)務設計和技術設計。業(yè)務設計是業(yè)務層的方案。對我們軟件設計師來講, 業(yè)務就是我們的系統(tǒng)想要完成一個工作, 要經過哪些步驟或流技術設計:關于框架和處理流程,注意要采用面向對象的思維方式。編碼:使用基本的技術細節(jié)進行系統(tǒng)實現測試:對是對我們系統(tǒng)可靠性的一個監(jiān)測集成:將每個程序員開發(fā)的模塊或
2、子系統(tǒng)合成為一個完成的系統(tǒng)思維方式:線性思維方式與發(fā)散思維方式。軟件開發(fā)要掌握的思想:模塊思維漸進式開發(fā)4、需求:自動抓取網絡資源的軟件。1、資源是什么 網頁、圖片、音樂、視頻等2、自動化是什么樣子一旦運行就不需要更多的干預。生成需求說明文檔。內容:對需求中不明確或不完善的說明進行解釋。功能點、附加要求、性能要求等5、設計業(yè)務設計:如何思考并完成設計注意:從頂層開始思考并設計,避免過早的陷入細節(jié)互聯(lián)網f粗淺的數據流設計處理流程:1、得到爬取種子(URL2、根據爬取種子下載資源(頁面)3、解析頁面,提取更多的URL4、對頁面做持久化操作5、根據提取的URL再進行下載操作6重復第2步到第5步系統(tǒng)設
3、計:互聯(lián)網系統(tǒng)結構圖注意:設計階段必不可少 設計可以使我們的思路更清晰,可以提高工作效率,可以提高代碼質量 詳細設計:注意:對系統(tǒng)或模塊設計要有輸入和輸出。控制器模塊控制器由三個模塊組成:1、配置文件處理模塊:從配置文件中讀取配置項,提供配置項的提取接口2、URL維護模塊:負責維護URL庫,提供如下功能a)輸入新的URLb)輸出一個未被抓取的 URLc)負責維護URL的抓取狀態(tài)3、任務調度模塊a)負責協(xié)調控制器的流程b)負責調用其他系統(tǒng)模塊完成工作4、維護URL列表數據結構6控制器設計配置文件解析模塊配置文件是以文件形式保存程序運行時必要的參數,減少輸入時的繁瑣過程文件類型是文本文件,內容一般
4、以鍵值對形式出現。概要設計:配置文件內容:key=value 形式注釋規(guī)則:注釋字符串前以“ #”標記。配置項設置:項目字段并發(fā)任務數job_ numurl種子seeddeeps抓取深度輸出日志的等級log_level模塊存放路徑(唯一)Module_path模塊名稱(模塊文件名,可以多個)Module_ name允許抓取的資源類 型(多個,文件后 綴)file_type模塊詳細設計:操作:1、讀取配置文件2、得到配置文件選項的值(鍵值)3、初始化ptivate:1、o文件2、維護.so文件中的接口函數設計原則:1、一個功能一個模塊2、可以自我維護a)維護版本號b)知道自己的名稱c)維護本模塊
5、內部的接口d) 可以對模塊進行初始化設計模塊的描述結構:字段名稱主版本號versi on次版本號subver模塊名稱n ame入口函數指針in t(*ha ndle)(void*);初始化函數指針in t(*i ni t)(Module*);設計入口函數指針原型in t(*ha ndle)(void*);設計初始化函數指針原型in t(*i ni t)(Module*);模塊管理器設計:1載入模塊的操作Int Load (char* path, char* name);Module* getModule(char* n ame);載入模塊操作的處理流程:1 通過路徑找到模塊文件 (.so)2
6、調用 dlopen 打開動態(tài)庫( .so )3 使用動態(tài)庫4 關閉動態(tài)庫文件7、下載器設計下載器模塊分為 socket 功能封裝與 Http 功能模塊http 協(xié)議對資源請求的操作 get 指令HTTP頭描述:http 頭以文本形式體現在 http 協(xié)議包中HTTP包的內容由HTTP頭進行描述,描述的格式:一條數據一行,每條描述以描述字段名稱開頭,Socket 功能框架設計:1 初始化 socket2 向服務器發(fā)送請求3 接受服務器反饋的數據4 設置 socket 模式把socket句柄注冊到epoll處理事件中。(在主流程中)HTTP協(xié)議處理模塊1解析頭2組裝頭提取HTTP數據內容(單獨一個
7、模塊)設計兩個模塊:文本處理模塊(html格式),二進制處理模塊(image/jpg/png等各式),還可以繼續(xù)添加其他文件處理模塊(PDF流媒體等)需要了解的相關知識:1 http協(xié)議(可以通過查詢RFC協(xié)議文檔了解更多)RFC文檔是用來解釋網絡協(xié)議的一種 文檔集合GET旨令請求頭的結構反饋頭的結構2http協(xié)議傳輸文件的模式http協(xié)議描述8頁面解析器設計html 文檔,是一種標記性語言 對頁面解析的目的:得到頁面中存在的下級 URLURL保存在A標簽的href屬性中可以通過正則表達式提取頁面中的 URL。注意提取到的URL深度。頁面解析的處理流程:1 得到下載的頁面2得到頁面對應的URL
8、結構體(用于得到當前頁面的深度)(注意判斷是否已經達到最大深度)3使用正則表達式得到頁面中所有的 URL列表4處理URL中的相對路徑5 一個細節(jié):把當前頁面深度加一,生成并填充URL結構體6把得到的URL列表回寫到URL管理器中(生成列表數據,以返回值形式回傳給上層代碼)9 持久化器設計仍然以模塊形式生成 分為網頁保存模塊和圖片保存模塊注意,如果涉及到網頁編碼需要進行轉碼操作(本系統(tǒng)不對此進行操作) 處理流程1 得到頁面的數據流或在內存緩沖區(qū)的數據2得到當前頁面的URL苗述結構體3 生成保存目錄(目錄已存在和未存在的處理情況)4 把文件按照指定模式寫入磁盤系統(tǒng)5 向主處理流程發(fā)送一個反饋,表示當前頁面處理的進度系統(tǒng)的核心代碼:1、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 村委代簽補償協(xié)議書范本
- 文化創(chuàng)意產業(yè)基地空地租賃與項目合作開發(fā)協(xié)議
- 申請商標簽協(xié)議書范本
- 充電樁充電服務及能源供應合同
- 精細化倉儲配送與供應鏈管理合同
- 茶園土地租賃與茶葉種植技術輸出合同
- 知名快餐品牌區(qū)域代理權及店鋪轉讓合同范本
- 產科醫(yī)院護士標準聘用合同及母嬰護理
- 餐飲品牌股權投資與轉讓合同
- 企業(yè)常年財務顧問與風險控制協(xié)議
- 西南大學馬原試題及答案
- 2025年電大??菩姓芾砉芾韺W基礎試題及答案
- 2024中國中信金融資產管理股份有限公司北京市分公司招聘筆試參考題庫附帶答案詳解
- 浙江省溫州市甌海區(qū)實驗小學教育集團2025年小升初必考題數學檢測卷含解析
- 2025年上半年四川省眉山青神縣青神縣事業(yè)單位考試招聘50人重點基礎提升(共500題)附帶答案詳解
- 山東省第三屆國學小名士題庫(1600題含答案)
- 內鏡室管理制度
- 消防泵房安全管理制度及操作規(guī)程
- 天津小卷試題及答案物理
- 2024北京朝陽區(qū)高二(下)期末英語試題和答案
- 胰十二指腸切除術后個案護理
評論
0/150
提交評論