基于分布式爬蟲的電影搜索系統(tǒng)的設(shè)計與實現(xiàn)
發(fā)布時間:2021-01-04 02:48
隨著大數(shù)據(jù)的到來,數(shù)據(jù)的價值顯得越來越重要。海量的數(shù)據(jù)有著巨大的研究價值和商業(yè)價值,這其中也包含電影信息數(shù)據(jù)。數(shù)據(jù)的來源以前是管理員手動輸入相關(guān)的數(shù)據(jù),現(xiàn)在可以通過網(wǎng)絡(luò)爬蟲代替管理員去獲取網(wǎng)絡(luò)上豐富的電影數(shù)據(jù)。但傳統(tǒng)的爬蟲不支持分布式,這往往需要花費(fèi)大量的時間才能爬取足夠多的數(shù)據(jù)。而分布式爬蟲通過多個爬蟲協(xié)同工作爬取數(shù)據(jù)可以提升成倍的效率,從而解決單個爬蟲爬取效率低的問題。電影搜索系統(tǒng)使用分布式爬蟲獲取電影數(shù)據(jù),分布式爬蟲使用了Redis數(shù)據(jù)庫和Scrapy爬蟲框架。爬蟲分為Master端和Slave端,Master端爬蟲主要負(fù)責(zé)解析網(wǎng)頁目錄頁,把匹配的目錄頁鏈接存入Redis以便Master后續(xù)繼續(xù)爬取,同時把匹配的詳情頁鏈接存入Redis交給Slave端進(jìn)行后續(xù)處理。Slave端爬蟲通過查詢Redis數(shù)據(jù)庫中詳情頁鏈接進(jìn)行詳情頁解析并下載數(shù)據(jù),下載完數(shù)據(jù)后通過腳本將數(shù)據(jù)格式化后存入MySQL數(shù)據(jù)庫中以便網(wǎng)站訪問。在爬蟲運(yùn)行過程中,通常會遇到些問題,所以針對這些問題設(shè)計了一些中間件來解決。例如通過模仿不同的瀏覽器發(fā)送訪問請求來防止爬蟲被網(wǎng)站屏蔽,通過爬蟲訪問時返回的狀態(tài)碼進(jìn)行不同的應(yīng)...
【文章來源】:華中科技大學(xué)湖北省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:69 頁
【學(xué)位級別】:碩士
【部分圖文】:
Scrapy總體框架圖
9圖 2.2 Docker 應(yīng)用部署圖引擎是 Docker 的核心部分,主要包含 Docker 守護(hù)進(jìn)程、Command Line Interface 命令行接口)[39]。其中核心的部分是服務(wù)器端,通常在后臺運(yùn)行。服務(wù)器端可以部署在遠(yuǎn)ESTAPI 規(guī)范了和守護(hù)進(jìn)程交互的接口。Docker CLI 通過護(hù)進(jìn)程進(jìn)行交互,實現(xiàn)了通過命令行進(jìn)行容器和鏡像的作方式[40]。部署應(yīng)用的過程中,用戶首先需要在客戶端以在網(wǎng)上倉庫上下載其他人已經(jīng)制作好的鏡像,然后通多個容器(container),最后用戶將自己的應(yīng)用部署在容t 中只是一個進(jìn)程,不同進(jìn)程之間是相互獨(dú)立且互不可見的
設(shè)計中間件來讓爬蟲避免被網(wǎng)站屏蔽;對于爬蟲訪問網(wǎng)頁得到的非 2要用中間件進(jìn)行不同的處理;最后對于爬蟲下載異常的問題,則采取嘗試重新下載數(shù)據(jù)。數(shù)據(jù)存儲的功能需求包含抓取字段的設(shè)計和數(shù)據(jù)的取字段的設(shè)計需要滿足網(wǎng)站的需求,并且數(shù)據(jù)的存儲需要將抓取的數(shù),通常為 json 格式,需要編寫腳本存儲數(shù)據(jù)庫進(jìn)行持久化存儲,因為數(shù)據(jù)庫讀取數(shù)據(jù)而不是文件。影搜索網(wǎng)站的功能需求,從業(yè)務(wù)角色的角度,系統(tǒng)可分為兩類,分別站方管理員。業(yè)務(wù)場景則包括面向用戶主體的用戶端,面向站方用戶。從業(yè)務(wù)及用戶需求的角度,在較高層級完成橫向切分,對于用戶來用戶相關(guān)、電影搜索、電影收藏、電影評論4個功能需求用例;對于,主要包括用戶管理、電影管理、評論管理 3 個功能需求用例,如圖 3對用例的各個功能給出相應(yīng)的說明。
本文編號:2955996
【文章來源】:華中科技大學(xué)湖北省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:69 頁
【學(xué)位級別】:碩士
【部分圖文】:
Scrapy總體框架圖
9圖 2.2 Docker 應(yīng)用部署圖引擎是 Docker 的核心部分,主要包含 Docker 守護(hù)進(jìn)程、Command Line Interface 命令行接口)[39]。其中核心的部分是服務(wù)器端,通常在后臺運(yùn)行。服務(wù)器端可以部署在遠(yuǎn)ESTAPI 規(guī)范了和守護(hù)進(jìn)程交互的接口。Docker CLI 通過護(hù)進(jìn)程進(jìn)行交互,實現(xiàn)了通過命令行進(jìn)行容器和鏡像的作方式[40]。部署應(yīng)用的過程中,用戶首先需要在客戶端以在網(wǎng)上倉庫上下載其他人已經(jīng)制作好的鏡像,然后通多個容器(container),最后用戶將自己的應(yīng)用部署在容t 中只是一個進(jìn)程,不同進(jìn)程之間是相互獨(dú)立且互不可見的
設(shè)計中間件來讓爬蟲避免被網(wǎng)站屏蔽;對于爬蟲訪問網(wǎng)頁得到的非 2要用中間件進(jìn)行不同的處理;最后對于爬蟲下載異常的問題,則采取嘗試重新下載數(shù)據(jù)。數(shù)據(jù)存儲的功能需求包含抓取字段的設(shè)計和數(shù)據(jù)的取字段的設(shè)計需要滿足網(wǎng)站的需求,并且數(shù)據(jù)的存儲需要將抓取的數(shù),通常為 json 格式,需要編寫腳本存儲數(shù)據(jù)庫進(jìn)行持久化存儲,因為數(shù)據(jù)庫讀取數(shù)據(jù)而不是文件。影搜索網(wǎng)站的功能需求,從業(yè)務(wù)角色的角度,系統(tǒng)可分為兩類,分別站方管理員。業(yè)務(wù)場景則包括面向用戶主體的用戶端,面向站方用戶。從業(yè)務(wù)及用戶需求的角度,在較高層級完成橫向切分,對于用戶來用戶相關(guān)、電影搜索、電影收藏、電影評論4個功能需求用例;對于,主要包括用戶管理、電影管理、評論管理 3 個功能需求用例,如圖 3對用例的各個功能給出相應(yīng)的說明。
本文編號:2955996
本文鏈接:http://sikaile.net/kejilunwen/sousuoyinqinglunwen/2955996.html
最近更新
教材專著