




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目 錄1 緒論21.1 研究背景及意義21.2 國(guó)內(nèi)外研究現(xiàn)狀21.3 本文研究?jī)?nèi)容32 相關(guān)技術(shù)簡(jiǎn)介42.1 網(wǎng)絡(luò)爬蟲定義42.2 R語言簡(jiǎn)介42.3 Scrapy框架52.4 數(shù)據(jù)挖掘技術(shù)介紹52.4.1 日志挖掘52.4.2 數(shù)據(jù)挖掘分析的過程62.5 Heritrix簡(jiǎn)介73 系統(tǒng)分析83.1 系統(tǒng)可行性分析83.2 功能需求分析83.3 系統(tǒng)流程分析93.4 性能需求94 系統(tǒng)設(shè)計(jì)114.1網(wǎng)絡(luò)爬蟲的模型分析114.2網(wǎng)絡(luò)爬蟲的搜索策略114.3網(wǎng)絡(luò)爬蟲的主題相關(guān)度判斷124.4 網(wǎng)絡(luò)爬蟲設(shè)計(jì)144.5 功能實(shí)現(xiàn)155 總結(jié)與展望21參考文獻(xiàn)22致 謝231 緒論1.1 研究背景及意
2、義隨著網(wǎng)絡(luò)的發(fā)展,越來越多的資源出現(xiàn)在人們面前,這時(shí)候人們就需要一種查詢這些資源的方法,一種可以方便快捷獲取自己想要的東西的方法。這時(shí)候搜索引擎這種搜索工具就出現(xiàn)了。網(wǎng)站擁有了較多內(nèi)容后,首先考慮基于目錄的內(nèi)容分類,以解決信息快速定位的問題,隨著內(nèi)容量的進(jìn)一步增加,很多內(nèi)容在發(fā)表之后就很快被湮沒,成為“信息孤島”,而不斷加深的目錄結(jié)構(gòu)也會(huì)讓用戶逐漸失去耐心。這時(shí),搜索引擎的優(yōu)勢(shì)就體現(xiàn)出來了:可以讓處于“信息孤島”狀態(tài)的內(nèi)容以一種更直接的方法提供給用戶;和基于目錄/分類的樹形結(jié)構(gòu)不同,基于關(guān)鍵詞檢索還可以讓內(nèi)容之間實(shí)現(xiàn)網(wǎng)狀的關(guān)聯(lián)結(jié)構(gòu),已經(jīng)出現(xiàn)了許多類似的搜索引擎。針對(duì)搜索引擎廣闊的應(yīng)用前景以及分
3、析國(guó)內(nèi)外搜索引擎的發(fā)展現(xiàn)狀,根據(jù)全文檢索系統(tǒng)的工作原理設(shè)計(jì)一種基于Internet的全文搜索引擎模型,它可以從互聯(lián)網(wǎng)上獲取網(wǎng)頁,建立索引數(shù)據(jù)庫,并采用數(shù)據(jù)庫管理作業(yè)和多線程技術(shù)以提高全文搜索的性能和效率,從技術(shù)上可以適用于任何有搜索需求的應(yīng)用。1.2 國(guó)內(nèi)外研究現(xiàn)狀網(wǎng)絡(luò)爬蟲,又稱為Robots或Spiders,幾乎與網(wǎng)絡(luò)同時(shí)出現(xiàn)。第一個(gè)網(wǎng)絡(luò)爬蟲是Matthew Gray的Wanderer,在頭兩屆國(guó)際萬維網(wǎng)會(huì)議上出現(xiàn)過數(shù)篇關(guān)于網(wǎng)絡(luò)爬蟲的論文。但是那時(shí)候互聯(lián)網(wǎng)上的信息規(guī)模比現(xiàn)在要小得多,那些文章中并沒有闡述如何處理現(xiàn)在所面臨的海量網(wǎng)絡(luò)信息的技術(shù)。每個(gè)搜索引擎的后臺(tái),都有相應(yīng)的網(wǎng)絡(luò)爬蟲在工作著。但
4、是出于互相競(jìng)爭(zhēng)的原因,這些網(wǎng)絡(luò)爬蟲的設(shè)計(jì)并沒有公開,除了以下3個(gè):Google Crawler,Internet Archive Crawler以及Mercator。1990 年,萬維網(wǎng)還沒有誕生,但是人們已經(jīng)開始頻繁的使用網(wǎng)絡(luò)來傳輸文件了,由于大量的文件分布在不同的終端上,如果對(duì)每個(gè)終端逐一的進(jìn)行訪問既費(fèi)時(shí)又費(fèi)力,于是蒙特利爾大學(xué)的學(xué)生 Alan Emtage、Bill Wheelan 和 Peter Deutsch開發(fā)了一個(gè)可以用文件名查找文件的系統(tǒng),也就是 Archie。它存儲(chǔ)了一個(gè) FTP 文件名列表,當(dāng)用戶輸入文件名進(jìn)行搜索時(shí),它會(huì)告訴用戶該文件是放在哪個(gè) FTP主機(jī)中,用戶就可以直
5、接訪問這個(gè)主機(jī)獲取文件。深受 Archie 系統(tǒng)的啟發(fā),1993年美國(guó)內(nèi)華達(dá) System Computing Services 大學(xué)開發(fā)出了一個(gè)已經(jīng)可以檢索網(wǎng)頁的搜索工具。同年,麻省理工學(xué)院(MIT)的學(xué)生馬休格雷(Matthew Gray)開發(fā)出了第一個(gè) web robot 網(wǎng)絡(luò)機(jī)器人程序,這個(gè)程序被命名為 World Wide Web Wanderer。雖然當(dāng)時(shí)這個(gè)程序并不是以做搜索引擎為目的而編寫的,但是它卻促進(jìn)了后來搜索引擎的發(fā)展。網(wǎng)絡(luò)機(jī)器人程序(Robot)也叫網(wǎng)頁蜘蛛(Spider)或網(wǎng)絡(luò)爬蟲(Crawler)。它是搜索引擎系統(tǒng)中負(fù)責(zé)抓取網(wǎng)頁的文本信息、圖片信息和其它信息的功能模
6、塊。它利用 HTML 文檔中包含的指向其它頁面或文件的鏈接信息,在分析完一個(gè)頁面后轉(zhuǎn)到其它鏈接繼續(xù)分析,把分析出來的結(jié)果存入數(shù)據(jù)庫。Worldwide Web Wanderer 剛開始只用來計(jì)算互聯(lián)網(wǎng)的發(fā)展規(guī)模,后來也發(fā)展成為能夠抓取 URL 的系統(tǒng)。1.3 本文研究?jī)?nèi)容本文主要分為五個(gè)章節(jié),第一部分為前言,主要介紹了課題背景、研究意義、國(guó)內(nèi)外研究現(xiàn)狀等內(nèi)容。第二部分是相關(guān)技術(shù)的介紹,主要介紹了網(wǎng)絡(luò)爬蟲、R語言、Lucene等。第三部分為系統(tǒng)分析,主要介紹了可行性分析功能需求分析等。第四部分是系統(tǒng)設(shè)計(jì),系統(tǒng)架構(gòu)設(shè)計(jì)和功能設(shè)計(jì)是主要的設(shè)計(jì)內(nèi)容。第五部分是總結(jié),主要對(duì)全文進(jìn)行了總結(jié)。2 相關(guān)技術(shù)簡(jiǎn)
7、介2.1 網(wǎng)絡(luò)爬蟲定義定義1:網(wǎng)絡(luò)爬蟲是一個(gè)自動(dòng)提取網(wǎng)頁的程序,它為搜索引擎從Web上下載網(wǎng)頁,是搜索引擎的重要組成部分。通用網(wǎng)絡(luò)爬蟲從一個(gè)或若干初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL列表;在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面上抽取新的URL放入待爬行隊(duì)列,直到滿足系統(tǒng)的停止條件。 定義2:主題網(wǎng)絡(luò)爬蟲就是根據(jù)一定的網(wǎng)頁分析算法過濾與主題無關(guān)的鏈接,保留主題相關(guān)的鏈接并將其放入待抓取的URL隊(duì)列中;然后根據(jù)一定的搜索策略從隊(duì)列中選擇下一步要抓取的網(wǎng)頁URL,并重復(fù)上述過程,直到達(dá)到系統(tǒng)的某一條件時(shí)停止。所有被網(wǎng)絡(luò)爬蟲抓取的網(wǎng)頁將會(huì)被系統(tǒng)存儲(chǔ),進(jìn)行一定的分析
8、、過濾,并建立索引,對(duì)于主題網(wǎng)絡(luò)爬蟲來說,這一過程所得到的分析結(jié)果還可能對(duì)后續(xù)的抓取過程進(jìn)行反饋和指導(dǎo)。 定義3:如果網(wǎng)頁p中包含超鏈接l,則p稱為鏈接l的父網(wǎng)頁。 定義4:如果超鏈接l指向網(wǎng)頁t,則網(wǎng)頁t稱為子網(wǎng)頁,又稱為目標(biāo)網(wǎng)頁。 主題網(wǎng)絡(luò)爬蟲的基本思路就是按照事先給出的主題,分超鏈接和已經(jīng)下載的網(wǎng)頁內(nèi)容,預(yù)測(cè)下一個(gè)待抓取的URL及當(dāng)前網(wǎng)頁的主題相關(guān)度,保證盡可能多地爬行、下載與主相關(guān)的網(wǎng)頁,盡可能少地下載無關(guān)網(wǎng)頁。2.2 R語言簡(jiǎn)介R是用于統(tǒng)計(jì)分析、繪圖的語言和操作環(huán)境。R是屬于GNU系統(tǒng)的一個(gè)自由
9、、免費(fèi)、源代碼開放的軟件,它是一個(gè)用于統(tǒng)計(jì)計(jì)算和統(tǒng)計(jì)制圖的優(yōu)秀工具。R作為一種統(tǒng)計(jì)分析軟件,是集統(tǒng)計(jì)分析與圖形顯示于一體的。它可以運(yùn)行于UNIX,Windows和Macintosh的操作系統(tǒng)上,而且嵌入了一個(gè)非常方便實(shí)用的幫助系統(tǒng),相比于其他統(tǒng)計(jì)分析軟件,R還有以下特點(diǎn):1.R是自由軟件。這意味著它是完全免費(fèi),開放源代碼的。可以在它的網(wǎng)站及其鏡像中下載任何有關(guān)的安裝程序、源代碼、程序包及其源代碼、文檔資料。標(biāo)準(zhǔn)的安裝文件身自身就帶有許多模塊和內(nèi)嵌統(tǒng)計(jì)函數(shù),安裝好后可以直接實(shí)現(xiàn)許多常用的統(tǒng)計(jì)功能。2.R是一種可編程的語言。作為一個(gè)開放的統(tǒng)計(jì)編程環(huán)境,語法通俗易懂,很容易學(xué)會(huì)和掌握語言的語法。而且
10、學(xué)會(huì)之后,我們可以編制自己的函數(shù)來擴(kuò)展現(xiàn)有的語言。這也就是為什么它的更新速度比一般統(tǒng)計(jì)軟件,如,SPSS,SAS等快得多。大多數(shù)最新的統(tǒng)計(jì)方法和技術(shù)都可以在R中直接得到。3.所有R的函數(shù)和數(shù)據(jù)集是保存在程序包里面的。只有當(dāng)一個(gè)包被載入時(shí),它的內(nèi)容才可以被訪問。一些常用、基本的程序包已經(jīng)被收入了標(biāo)準(zhǔn)安裝文件中,隨著新的統(tǒng)計(jì)分析方法的出現(xiàn),標(biāo)準(zhǔn)安裝文件中所包含的程序包也隨著版本的更新而不斷變化。在另外版安裝文件中,已經(jīng)包含的程序包有:base一R的基礎(chǔ)模塊、mle一極大似然估計(jì)模塊、ts一時(shí)間序列分析模塊、mva一多元統(tǒng)計(jì)分析模塊、survival一生存分析模塊等等.4.R具有很強(qiáng)的互動(dòng)性。除了圖
11、形輸出是在另外的窗口處,它的輸入輸出窗口都是在同一個(gè)窗口進(jìn)行的,輸入語法中如果出現(xiàn)錯(cuò)誤會(huì)馬上在窗口口中得到提示,對(duì)以前輸入過的命令有記憶功能,可以隨時(shí)再現(xiàn)、編輯修改以滿足用戶的需要。輸出的圖形可以直接保存為JPG,BMP,PNG等圖片格式,還可以直接保存為PDF文件。另外,和其他編程語言和數(shù)據(jù)庫之間有很好的接口。5.如果加入R的幫助郵件列表一,每天都可能會(huì)收到幾十份關(guān)于R的郵件資訊。可以和全球一流的統(tǒng)計(jì)計(jì)算方面的專家討論各種問題,可以說是全世界最大、最前沿的統(tǒng)計(jì)學(xué)家思維的聚集地。2.3 Scrapy框架Scrapy屬于R語言開發(fā)的一個(gè)快速,高層次的屏幕抓取和web抓取框架,用于抓取web站點(diǎn)并
12、從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測(cè)和自動(dòng)化測(cè)試。Scrapy是一個(gè)為了爬取網(wǎng)站數(shù)據(jù),提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架。可以應(yīng)用在包括數(shù)據(jù)挖掘,信息處理或存儲(chǔ)歷史數(shù)據(jù)等一系列的程序中。所謂網(wǎng)絡(luò)爬蟲,就是一個(gè)在網(wǎng)上到處或定向抓取數(shù)據(jù)的程序,當(dāng)然,這種說法不夠?qū)I(yè),更專業(yè)的描述就是,抓取特定網(wǎng)站網(wǎng)頁的HTML數(shù)據(jù)。抓取網(wǎng)頁的一般方法是,定義一個(gè)入口頁面,然后一般一個(gè)頁面會(huì)有其他頁面的URL,于是從當(dāng)前頁面獲取到這些URL加入到爬蟲的抓取隊(duì)列中,然后進(jìn)入到新頁面后再遞歸的進(jìn)行上述的操作,其實(shí)說來就跟深度遍歷或廣度遍歷一樣。Scrapy 使用 Twisted這個(gè)異步網(wǎng)絡(luò)
13、庫來處理網(wǎng)絡(luò)通訊,架構(gòu)清晰,并且包含了各種中間件接口,可以靈活的完成各種需求。2.4 數(shù)據(jù)挖掘技術(shù)介紹2.4.1 日志挖掘日志挖掘一般都包含以下幾個(gè)過程:(一)前處理數(shù)據(jù)預(yù)處理日志數(shù)據(jù)挖掘中最重要的組成部分,其任務(wù)是將原始日志數(shù)據(jù)轉(zhuǎn)換成格式的數(shù)據(jù)挖掘和模式發(fā)現(xiàn)在必要的依據(jù),預(yù)處理可以簡(jiǎn)化數(shù)據(jù)挖掘的過程中,做出更客觀的決定。數(shù)據(jù)處理,包括數(shù)據(jù)清洗,用戶識(shí)別,會(huì)話識(shí)別,分四步額外的路線。1.清洗數(shù)據(jù)數(shù)據(jù)清理是指將被處理導(dǎo)入到關(guān)系型數(shù)據(jù)庫中,刪除錯(cuò)誤的值在Web日志數(shù)據(jù),缺失值的日志數(shù)據(jù),和其他人,而數(shù)據(jù)挖掘和Web無關(guān)的變量或數(shù)據(jù)清理,取得了經(jīng)營(yíng)目標(biāo)工具;2簡(jiǎn)介用戶。用戶的識(shí)別,是要找到從日志數(shù)據(jù)
14、的每個(gè)用戶訪問的地址,避免重復(fù)挖掘。此時(shí),由于在本地高速緩存中,在代理服務(wù)器和防火墻為用戶動(dòng)態(tài)分配IP地址的情況下,要確定的每個(gè)用戶會(huì)變得非常復(fù)雜。(二)模式發(fā)現(xiàn)模式發(fā)現(xiàn),數(shù)據(jù)預(yù)處理,數(shù)據(jù)挖掘算法對(duì)數(shù)據(jù)進(jìn)行分析。有幾種方法統(tǒng)計(jì)分鐘,分類,分組,關(guān)聯(lián)規(guī)則,路徑分析。(1)的統(tǒng)計(jì)信息。所述統(tǒng)計(jì)方法是通過分析會(huì)話文件中提取知識(shí)的最常用的方法,瀏覽時(shí)間,頻率,和其他導(dǎo)航路徑,平均值等的統(tǒng)計(jì)分析。盡管缺乏深度,但仍然可用于提高網(wǎng)站的結(jié)構(gòu),增強(qiáng)了安全性系統(tǒng),提高現(xiàn)場(chǎng)訪問的效率等。(2)分類。類別包括開采技術(shù)將找到一個(gè)短期的還是數(shù)據(jù)的事件或特定群體的一個(gè)子集的規(guī)則的定義。該技術(shù)是應(yīng)用最廣泛的各類業(yè)務(wù)問題,以
15、一流的開采技術(shù)。分類算法是決策樹最流行的方法,除了神經(jīng)網(wǎng)絡(luò),貝葉斯分類。(3)基團(tuán)。分組是一個(gè)數(shù)據(jù)集成多個(gè)類別,因?yàn)橛懈邼舛鹊臄?shù)據(jù)之間的相似性,在同一類,和不同的類中,可以是在量之間的差數(shù)據(jù)。技術(shù)團(tuán),沒有預(yù)定義的類別和訓(xùn)練樣本存在,所有記錄將按照彼此之間的相似性的程度進(jìn)行分類。主要算法K均值,DBSCAN等。(4)相關(guān)的規(guī)則。這樣做的目的是要利用上數(shù)據(jù)之間的關(guān)系的隱藏的相關(guān)性分析,自動(dòng)檢測(cè)的隱藏模式以前未發(fā)現(xiàn)的,相關(guān)分析通常以規(guī)定的形式。這時(shí),利用先天的關(guān)聯(lián)規(guī)則挖掘算法,F(xiàn)P-growth算法。(5)路徑分析。路徑分析可用于指定路徑定期訪問該網(wǎng)站的調(diào)整和優(yōu)化的網(wǎng)站,它允許用戶訪問更加方便,快捷
16、到所需的頁面結(jié)構(gòu)也可以用來備份聰明和有針對(duì)性的電子商務(wù)活動(dòng),按照灌木格局瀏覽普通用戶。(三)模式分析基于所有上述過程中,原始數(shù)據(jù)進(jìn)行進(jìn)一步的分析,以確定用戶的型態(tài)沖浪的規(guī)律,即利益和使用者的習(xí)慣,并描述了某些以提供對(duì)規(guī)劃和決策建筑工地一個(gè)理論基礎(chǔ)。主要方法是:?jiǎn)栴},OLAP技術(shù)和可視化技術(shù)。2.4.2 數(shù)據(jù)挖掘分析的過程(一)所要解決的問題行業(yè)或機(jī)構(gòu)所面臨的數(shù)據(jù)挖掘需求總是很多,這個(gè)問題前,如需要形成一個(gè)研究問題本身,然后提取這一問題的模型很多次。因此,數(shù)據(jù)挖掘用戶的首先是一個(gè)共同的背景知識(shí),了解需求,充分發(fā)揮數(shù)據(jù)挖掘的價(jià)值,我們的目標(biāo)必須有一個(gè)明確的定義,這個(gè)決定最終想做的事情。(二)獲得的
17、數(shù)據(jù)建立數(shù)據(jù)挖掘庫來源為了進(jìn)行數(shù)據(jù)挖掘需要收集的數(shù)據(jù)源挖掘。更多的時(shí)候,位于數(shù)據(jù)源中不同的數(shù)據(jù)源,因?yàn)樵诖蠖鄶?shù)情況下,需要及早治療,修改數(shù)據(jù),和外部數(shù)據(jù)經(jīng)常在使用中遇到的,所以應(yīng)該可以收集在一個(gè)數(shù)據(jù)庫或庫數(shù)據(jù)。(三)數(shù)據(jù)分析和調(diào)整數(shù)據(jù)分析是監(jiān)管過程本身數(shù)據(jù)的深入研究,集中識(shí)別數(shù)據(jù)的模式和趨勢(shì),可以用船級(jí)社和其他技術(shù)進(jìn)行具體分析的規(guī)則,主要目標(biāo)是實(shí)現(xiàn)與各種因素的復(fù)雜影響,有明確的關(guān)系,終于找到了因素之間的相互關(guān)系。數(shù)據(jù)同步是基于數(shù)據(jù)分析處理和結(jié)論以上,數(shù)據(jù)以調(diào)整狀態(tài),并在數(shù)據(jù)的趨勢(shì)有更好的理解的基礎(chǔ)知識(shí),那么這個(gè)問題應(yīng)繼續(xù)解釋,數(shù)量,為消除數(shù)據(jù)的需求,根據(jù)整個(gè)數(shù)據(jù)挖掘過程產(chǎn)生新的知識(shí)或變量新組合
18、,以反映國(guó)家的一個(gè)準(zhǔn)確的描述。(四)建模這是數(shù)據(jù)挖掘的一個(gè)重要組成部分,經(jīng)過加工和分析上面的步驟,問題仍然定義進(jìn)行了調(diào)整,根據(jù)需求更多,你可以創(chuàng)建一個(gè)數(shù)據(jù)挖掘模型的數(shù)據(jù)的結(jié)構(gòu)和內(nèi)容。在預(yù)測(cè)過程中,常用的神經(jīng)網(wǎng)絡(luò),決策樹,數(shù)理統(tǒng)計(jì),時(shí)間序列分析,建立模型。2.5 Heritrix簡(jiǎn)介Heritrix是IA的一個(gè)開源,可擴(kuò)展的web爬蟲項(xiàng)目。Heritrix工程始于2003年初,IA的目的是開發(fā)一個(gè)特殊的爬蟲,對(duì)網(wǎng)上的資源進(jìn)行歸檔,建立網(wǎng)絡(luò)數(shù)字圖書館。在過去的6年里,IA已經(jīng)建立了400TB的數(shù)據(jù)。 IA期望他們的crawler包含以下幾種:寬帶爬蟲:能夠以更高的帶寬去站點(diǎn)爬。主題爬蟲:集中于被選
19、擇的問題。持續(xù)爬蟲:不僅僅爬更當(dāng)前的網(wǎng)頁還負(fù)責(zé)爬日后更新的網(wǎng)頁。實(shí)驗(yàn)爬蟲:對(duì)爬蟲技術(shù)進(jìn)行實(shí)驗(yàn),以決定該爬什么,以及對(duì)不同協(xié)議的爬蟲 爬行結(jié)果進(jìn)行分析的。3 系統(tǒng)分析3.1 系統(tǒng)可行性分析技術(shù)可行性分析本系統(tǒng)采用R語言進(jìn)行開發(fā),提示信息完善,界面友好有親和力,本系統(tǒng)在技術(shù)方面是可行的。操作可行性分析本系統(tǒng)采用Windows開發(fā),操作簡(jiǎn)單易懂,對(duì)用戶來說不需要高深的計(jì)算機(jī)專業(yè)知識(shí),只要會(huì)基本電腦知識(shí),就可以方便的操作本系統(tǒng)。經(jīng)濟(jì)可行性分析由于本系統(tǒng)屬于模擬的網(wǎng)絡(luò)爬蟲系統(tǒng),整個(gè)系統(tǒng)并不算太大,因此開發(fā)成本不算太高。整個(gè)開發(fā)過程由兩個(gè)人參與,只需要兩臺(tái)PC機(jī)和上述的各種軟件,就可以實(shí)現(xiàn)全部的開發(fā)任務(wù)。
20、由于PC機(jī)是我們各自原有的,而且無需專門升級(jí)硬件;而各種軟件,又是能夠在網(wǎng)上免費(fèi)下載的,因此,整個(gè)開發(fā)成本可以說是非常的低廉,這也為我們以后進(jìn)一步完善網(wǎng)站提供了非常大的方便。在使用成本上,用戶只需要擁有一臺(tái)能夠連接到國(guó)際互聯(lián)網(wǎng)上的計(jì)算機(jī),通過注冊(cè)就可以在世界的任何一個(gè)角落使用網(wǎng)站的全部功能和服務(wù)。而且對(duì)計(jì)算機(jī)的硬件的需求也不是很高,軟件方面也沒有特殊的需求,易于廣大用的訪問與使用。因此,從經(jīng)濟(jì)可行性分析來看,這個(gè)網(wǎng)站體現(xiàn)了經(jīng)濟(jì)實(shí)惠,但是功能強(qiáng)大的特點(diǎn)。3.2 功能需求分析本系統(tǒng)目標(biāo)是設(shè)計(jì)一個(gè)基于R語言的爬蟲系統(tǒng),主要功能需求包括以下方面:(1)信息收集:在系統(tǒng)設(shè)計(jì)中,首先,要收集信息,從其它網(wǎng)
21、站上收集信息,將其它網(wǎng)站上收集的信息保存到數(shù)據(jù)庫中。(2)搜索實(shí)現(xiàn):本系統(tǒng)是一個(gè)搜索系統(tǒng),是專業(yè)為用戶提供搜索服務(wù)的爬蟲系統(tǒng),用戶需要搜索數(shù)據(jù)時(shí),只需要在站內(nèi)搜索欄中輸入相關(guān)的關(guān)鍵字,系統(tǒng)就會(huì)自動(dòng)進(jìn)行匹配,將搜索出來的信息進(jìn)行自動(dòng)排列,然后展示給用戶,滿足用戶的需求。除此之外,還需要注意一點(diǎn),搜索出來的數(shù)據(jù)是不是用戶想要搜索的數(shù)據(jù),在此之前,用戶可以先輸入想要查詢的數(shù)據(jù)的關(guān)鍵字,系統(tǒng)先進(jìn)行模糊查詢,通過數(shù)據(jù)庫匹配,然后進(jìn)行分詞,建立索引,將建立好的索引進(jìn)行集合,然后返回給用戶,供用戶進(jìn)行篩選。(3)展示實(shí)現(xiàn):在用戶提交搜索請(qǐng)求之后,系統(tǒng)將搜索到的信息通過瀏覽器分頁的方式,將搜索結(jié)果顯示給用戶,
22、這些信息顯示要滿足簡(jiǎn)單、直觀、交互性良好等具體目標(biāo)和要求。(4)安全管理:安全管理可以分為系統(tǒng)安全和數(shù)據(jù)安全,系統(tǒng)的安全需要做好程序判斷和更新維護(hù),數(shù)據(jù)安全需要做好數(shù)據(jù)備份。3.3 系統(tǒng)流程分析爬蟲系統(tǒng)的工作流程主要包括五個(gè)步驟:aiohttp下載網(wǎng)頁、asyncio異步框架、lxml配合xpath分析網(wǎng)頁、pandas讀取下載后的數(shù)據(jù)、bokeh生成網(wǎng)頁顯示。爬蟲系統(tǒng)流程圖如圖3-1所示:圖3-1 爬蟲系統(tǒng)流程圖3.4 性能需求本系統(tǒng)實(shí)現(xiàn)后應(yīng)具有以下性能:可靠性本系統(tǒng)能夠提供7×24小時(shí)持續(xù)訪問的功能,從根本上確保系統(tǒng)實(shí)時(shí)有效和可用性,管理員會(huì)在每日凌晨特定時(shí)間段內(nèi)對(duì)系統(tǒng)進(jìn)行備份和
23、維護(hù)。系統(tǒng)中傳輸數(shù)據(jù)都是精準(zhǔn)有效的,采用握手協(xié)議,保證數(shù)據(jù)不會(huì)丟失。在權(quán)限設(shè)置方面,系統(tǒng)后臺(tái)管理采用分級(jí)權(quán)限和逐級(jí)授權(quán)管理的功能,管理員可以對(duì)用戶設(shè)置權(quán)限,也可以修改用戶的權(quán)限,確保不同用戶有不同的權(quán)限,不同權(quán)限對(duì)應(yīng)相應(yīng)的管理功能和范圍。可維護(hù)性軟件采用面向?qū)ο蠹夹g(shù)開發(fā),對(duì)比面向過程的軟件開發(fā)技術(shù)來看,面向?qū)ο蟮拈_發(fā)技術(shù)更容易維護(hù)和升級(jí)。在系統(tǒng)開發(fā)中,設(shè)計(jì)師對(duì)軟件進(jìn)行嚴(yán)格管控,在開發(fā)過程中采用規(guī)范的文檔管理,這樣方便系統(tǒng)修改和維護(hù)。在保證高聚合,低耦合的原則下,盡量做到軟件規(guī)范模塊化,使得軟件的更新和修改極其方便,增強(qiáng)可維護(hù)性可擴(kuò)展性保證在系統(tǒng)升級(jí)或者系統(tǒng)功能擴(kuò)展,或者用戶數(shù)量激等情況下,系統(tǒng)
24、能夠在保持現(xiàn)有系統(tǒng)功能和架構(gòu)的情況下,平穩(wěn)升級(jí)。系統(tǒng)建設(shè)要求能夠保護(hù)投資,同時(shí),在服務(wù)器等硬件更新升級(jí)方面,在服務(wù)器的訪問數(shù)據(jù)量和訪問頻度增加的情況下,能夠通過增加服務(wù)器內(nèi)存和硬盤的方式進(jìn)行擴(kuò)充,可以通過硬件升級(jí)解決大數(shù)據(jù)量和高訪問頻度的問題。安全性軟件必須經(jīng)過安全設(shè)置,能夠保證運(yùn)行時(shí)候的數(shù)據(jù)和功能的安全,同時(shí)要考慮賬號(hào)的安全,以及完善安全漏洞。此外,也要保證硬件設(shè)備的安全性,操作系統(tǒng)定期進(jìn)行漏洞修復(fù)。易用性考慮到平臺(tái)面向的是普通的消費(fèi)者,這些消費(fèi)者使用計(jì)算機(jī)的水平有限,所以,系統(tǒng)要容易操作,用戶體驗(yàn)好,功能布局合理。對(duì)于管理員后臺(tái)管理,要提供完善和合理的管理流程。兼容性要求軟件能夠所有瀏覽器
25、上的都可以運(yùn)行,要考慮瀏覽器的兼容問題,要兼容主流的瀏覽器。對(duì)客戶端的要求不能太高,通常配置的臺(tái)式電腦都可以使用。可移植性軟件可以在不同操作系統(tǒng)之間進(jìn)行遷移,考慮隨著用戶使用量的增大,需要使用linux操作系統(tǒng)進(jìn)行負(fù)載均衡,所以保證系統(tǒng)在需要的時(shí)候平穩(wěn)的遷移到其他系統(tǒng)。4 系統(tǒng)設(shè)計(jì)4.1網(wǎng)絡(luò)爬蟲的模型分析首先建立URL任務(wù)列表,即開始要爬取的URL。由URL任務(wù)列表開始,根據(jù)預(yù)先設(shè)定的深度爬取網(wǎng)頁,同時(shí)判斷URL是否重復(fù),按照一定算法和排序方式搜索頁面,然后對(duì)頁面按照一定算法進(jìn)行分析,并提取相關(guān)URL,最后將所得URL返回任務(wù)列表。之后將任務(wù)列表中URL重新開始爬取,從而使網(wǎng)絡(luò)爬蟲進(jìn)行循環(huán)運(yùn)行
26、。4.2網(wǎng)絡(luò)爬蟲的搜索策略本文的搜索策略為廣度優(yōu)先搜索策略。如下圖4-1所示。圖4-1 廣度優(yōu)先搜索策略示意圖 1.定義一個(gè)狀態(tài)結(jié)點(diǎn)采用廣度優(yōu)先搜索算法解答問題時(shí),需要構(gòu)造一個(gè)表明狀態(tài)特征和不同狀態(tài)之間關(guān)系的數(shù)據(jù)結(jié)構(gòu),這種數(shù)據(jù)結(jié)構(gòu)稱為結(jié)點(diǎn)。不同的問題需要用不同的數(shù)據(jù)結(jié)構(gòu)描述。2.確定結(jié)點(diǎn)的擴(kuò)展規(guī)則根據(jù)問題所給定的條件,從一個(gè)結(jié)點(diǎn)出發(fā),可以生成一個(gè)或多個(gè)新的結(jié)點(diǎn),這個(gè)過程通常稱為擴(kuò)展。結(jié)點(diǎn)之間的關(guān)系一般可以表示成一棵樹,它被稱為解答樹。搜索算法的搜索過程實(shí)際上就是根據(jù)初始條件和擴(kuò)展規(guī)則構(gòu)造一棵解答樹并尋找符合目標(biāo)狀態(tài)的結(jié)點(diǎn)的過程。廣度優(yōu)先搜索算法中,解答樹上結(jié)點(diǎn)的擴(kuò)展是沿結(jié)點(diǎn)深度的“斷層”進(jìn)行,
27、也就是說,結(jié)點(diǎn)的擴(kuò)展是按它們接近起始結(jié)點(diǎn)的程度依次進(jìn)行的。首先生成第一層結(jié)點(diǎn),同時(shí)檢查目標(biāo)結(jié)點(diǎn)是否在所生成的結(jié)點(diǎn)中,如果不在,則將所有的第一層結(jié)點(diǎn)逐一擴(kuò)展,得到第二層結(jié)點(diǎn),并檢查第二層結(jié)點(diǎn)是否包含目標(biāo)結(jié)點(diǎn),.對(duì)長(zhǎng)度為n+1的任一結(jié)點(diǎn)進(jìn)行擴(kuò)展之前,必須先考慮長(zhǎng)度為n的結(jié)點(diǎn)的每種可能的狀態(tài)。因此,對(duì)于同一層結(jié)點(diǎn)來說,求解問題的價(jià)值是相同的,我們可以按任意順序來擴(kuò)展它們。這里采用的原則是先生成的結(jié)點(diǎn)先擴(kuò)展。結(jié)點(diǎn)的擴(kuò)展規(guī)則也就是如何從現(xiàn)有的結(jié)點(diǎn)生成新結(jié)點(diǎn)。對(duì)不同的問題,結(jié)點(diǎn)的擴(kuò)展規(guī)則也不相同,需要按照問題的要求確定。3.搜索策略為了便于進(jìn)行搜索,要設(shè)置一個(gè)表存儲(chǔ)所有的結(jié)點(diǎn)。因?yàn)樵趶V度優(yōu)先搜索算法中,要
28、滿足先生成的結(jié)點(diǎn)先擴(kuò)展的原則,所以存儲(chǔ)結(jié)點(diǎn)的表一般設(shè)計(jì)成隊(duì)列的數(shù)據(jù)結(jié)構(gòu)。搜索的步驟一般是:(1)從隊(duì)列頭取出一個(gè)結(jié)點(diǎn),檢查它按照擴(kuò)展規(guī)則是否能夠擴(kuò)展,如果能則產(chǎn)生一個(gè)新結(jié)點(diǎn)。(2)檢查新生成的結(jié)點(diǎn),看它是否已在隊(duì)列中存在,如果新結(jié)點(diǎn)已經(jīng)在隊(duì)列中出現(xiàn)過,就放棄這個(gè)結(jié)點(diǎn),然后回到第(1)步。否則,如果新結(jié)點(diǎn)未曾在隊(duì)列中出現(xiàn)過,則將它加入到隊(duì)列尾。(3)檢查新結(jié)點(diǎn)是否目標(biāo)結(jié)點(diǎn)。如果新結(jié)點(diǎn)是目標(biāo)結(jié)點(diǎn),則搜索成功,程序結(jié)束;若新結(jié)點(diǎn)不是目標(biāo)結(jié)點(diǎn),則回到第(1)步,再從隊(duì)列頭取出結(jié)點(diǎn)進(jìn)行擴(kuò)展.。最終可能產(chǎn)生兩種結(jié)果:找到目標(biāo)結(jié)點(diǎn),或擴(kuò)展完所有結(jié)點(diǎn)而沒有找到目標(biāo)結(jié)點(diǎn)。4.3網(wǎng)絡(luò)爬蟲的主題相關(guān)度判斷主題爬蟲的
29、系統(tǒng)組成最初考慮是對(duì)頁面的過濾,不像普通爬蟲對(duì)所有頁面的鏈接進(jìn)行處理,先對(duì)頁面與受限領(lǐng)域的主題相關(guān)度進(jìn)行分析,只有當(dāng)其主題相關(guān)度符合要求時(shí)才處理該頁面中的鏈接,因?yàn)槿绻擁撁婧捅绢I(lǐng)域比較相關(guān),它所包含的鏈接和領(lǐng)域相關(guān)的幾率也較大,這樣提高了爬行精度,雖然會(huì)遺漏少數(shù)頁面,但綜合效果是令人滿意的。因此,主題相關(guān)度的分析是主題爬蟲設(shè)計(jì)的關(guān)鍵。主題蜘蛛將網(wǎng)頁下載到本地后,需要使用基于內(nèi)容的主題判別方法計(jì)算該網(wǎng)頁的主題相關(guān)度值,主題相關(guān)度低于某一閾值的網(wǎng)頁被丟棄。什么是網(wǎng)頁標(biāo)題通常瀏覽一個(gè)網(wǎng)頁時(shí),通過瀏覽器頂端的藍(lán)色顯示條出現(xiàn)的信息就是“網(wǎng)頁標(biāo)題”。在網(wǎng)頁HTML代碼中,網(wǎng)頁標(biāo)題位于標(biāo)簽之間。網(wǎng)頁標(biāo)題是
30、對(duì)于一個(gè)網(wǎng)頁的高度概括,一般來說,網(wǎng)站首頁的標(biāo)題就是網(wǎng)站的正式名稱,而網(wǎng)站中文章內(nèi)容頁面的標(biāo)題就是這文章的題目,欄目首頁的標(biāo)題通常是欄目名稱。當(dāng)然這種一般原則并不是固定不變的,在實(shí)際工作中可能會(huì)有一定的變化,但是無論如何變化,總體上仍然會(huì)遵照這種規(guī)律。例如,現(xiàn)在會(huì)看到很多網(wǎng)站的首頁標(biāo)題較長(zhǎng),除了網(wǎng)站名稱之外,還有網(wǎng)站相關(guān)業(yè)務(wù)之類的關(guān)鍵詞,這主要是為了在搜索引擎搜索結(jié)果中獲得排名優(yōu)勢(shì)而考慮的,也屬于正常的搜索引擎優(yōu)化方法。因?yàn)橐话愕墓久Q(或者品牌名稱)中可能不包含核心業(yè)務(wù)的關(guān)鍵詞,在搜索結(jié)果排名中將處于不利地位。(二)網(wǎng)頁標(biāo)題的重要性以Google為例,Google會(huì)對(duì)其標(biāo)題標(biāo)簽(meta
31、title)中出現(xiàn)的關(guān)鍵字給予較高的權(quán)值。所以應(yīng)當(dāng)確保在網(wǎng)站的標(biāo)題標(biāo)簽中包含了最重要的關(guān)鍵詞,即應(yīng)圍繞最重要的關(guān)鍵詞來決定網(wǎng)頁標(biāo)題的內(nèi)容。不過網(wǎng)頁的標(biāo)題不可過長(zhǎng),一般最好在35到40個(gè)字符之間。在實(shí)際操作中,網(wǎng)頁標(biāo)題不宜過短或過長(zhǎng)。太短無法完整的表達(dá)網(wǎng)頁信息,太長(zhǎng)不僅不利于用戶識(shí)別,而且對(duì)搜索引擎來說也加大了識(shí)別核心關(guān)鍵詞的難度;網(wǎng)頁標(biāo)題應(yīng)概括網(wǎng)頁的核心內(nèi)容。搜索引擎在進(jìn)行搜索的時(shí)候,搜索結(jié)果的內(nèi)容一般是網(wǎng)頁標(biāo)題、網(wǎng)頁摘要信息和鏈接,要引起用戶的關(guān)注,高度總結(jié)了網(wǎng)頁內(nèi)容的標(biāo)題至關(guān)重要。比如戴爾中國(guó)的網(wǎng)站首頁標(biāo)題為“戴爾中國(guó)(Dell China)計(jì)算機(jī),筆記本電腦,臺(tái)式機(jī),打印機(jī),工作站,服務(wù)
32、器,存儲(chǔ)器,電子產(chǎn)品及附件等”。戴爾的首頁標(biāo)題中不但涵蓋了最重要的公司信息,而且還包括公司的主要產(chǎn)品,這就是核心關(guān)鍵詞,當(dāng)用“筆記本電腦”、“臺(tái)式電腦”這些關(guān)鍵詞在谷歌中進(jìn)行搜索時(shí),戴爾公司的網(wǎng)頁都排在第一屏的前幾條位置。但是與此同時(shí)需要注意的還有網(wǎng)頁正文的重要性,因?yàn)榫W(wǎng)頁的標(biāo)題和關(guān)鍵字很可能與正文無關(guān),虛假關(guān)鍵詞是通過在META中設(shè)置與網(wǎng)站內(nèi)容無關(guān)的關(guān)鍵詞,如在Title中設(shè)置熱門關(guān)鍵詞,以達(dá)到誤導(dǎo)用戶進(jìn)入網(wǎng)站的目的。同樣的情況也包括鏈接關(guān)鍵詞與實(shí)際內(nèi)容不符的情況。具體判斷主題相關(guān)度的步驟1.對(duì)標(biāo)題及正文的特征項(xiàng)的選取是通過分詞后與主題集合匹配,并通過詞頻計(jì)算來得到與主題向量維數(shù)相等的標(biāo)題向
33、量和正文向量。2.通過向量空間模型計(jì)算出主題和標(biāo)題的相關(guān)度B。3.通過空間向量向量模型計(jì)算主題與正文的相關(guān)度C。4.主題與整個(gè)網(wǎng)頁的相關(guān)度:A=4×B+C。5.通過詳細(xì)計(jì)算,設(shè)定相關(guān)度閾值為2,網(wǎng)頁與主題的相關(guān)度A>2,則認(rèn)為該網(wǎng)頁與主題相關(guān)的。4.4 網(wǎng)絡(luò)爬蟲設(shè)計(jì)網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)要分為三個(gè)步驟,這三個(gè)步驟分別為網(wǎng)頁分析,網(wǎng)頁處理隊(duì)列,網(wǎng)頁信息截取。1.網(wǎng)頁分析網(wǎng)頁文檔通常是html格式的,這種格式的文件通常是種半結(jié)構(gòu)化文本,用標(biāo)簽表示了各部分代表的意思。對(duì)于半結(jié)構(gòu)的文本,往往都是對(duì)該文本中帶有特殊標(biāo)識(shí)的字符先進(jìn)行分析,然后在對(duì)該文本進(jìn)行爬蟲處理,具體而言,就是對(duì)HTML語言中各
34、個(gè)標(biāo)記之間存在的關(guān)系進(jìn)行分析。經(jīng)過對(duì)各個(gè)元素的分析,就能確定用戶在網(wǎng)頁中想要獲取的信息。HTML中元素的描述主要是采取開始標(biāo)記(Start Tag)、內(nèi)容(Content)、結(jié)束標(biāo)記(End Tag)一起標(biāo)示的。其中,元素名稱在開始標(biāo)記中表示,在HTML語言中標(biāo)記為<元素名稱>,對(duì)應(yīng)的結(jié)束標(biāo)記為<元素名稱>,內(nèi)容出現(xiàn)在開始標(biāo)記和結(jié)束標(biāo)記之間。在本系統(tǒng)中,我們采用的網(wǎng)頁分析方法是利用網(wǎng)頁標(biāo)記樹實(shí)現(xiàn)的,主要是對(duì)文本進(jìn)行分析,將頁面轉(zhuǎn)化為動(dòng)態(tài)網(wǎng)頁標(biāo)記樹,這個(gè)樹可以反映文檔的全部結(jié)構(gòu),下圖4-2 是一個(gè)簡(jiǎn)單的動(dòng)態(tài)網(wǎng)頁標(biāo)記樹。 圖 4-2 動(dòng)態(tài)標(biāo)記樹2. 網(wǎng)頁的處理隊(duì)列頁面處理隊(duì)
35、列中保存的是頁面的URL,處理隊(duì)列四種,包括等待隊(duì)列、處理隊(duì)列、錯(cuò)誤隊(duì)列、完成隊(duì)。爬出將爬取的網(wǎng)頁存放在對(duì)應(yīng)隊(duì)列,按照算法依次處理,這個(gè)移動(dòng)網(wǎng)頁爬蟲按照搜索算法將對(duì)應(yīng)web網(wǎng)頁的全部搜索,并抓取下來。頁面隊(duì)列中保存的頁面的URL都是屬于內(nèi)部鏈接。等待隊(duì)列(WaitURL):在這個(gè)隊(duì)列中所有網(wǎng)頁都是等待被網(wǎng)絡(luò)爬蟲程序處理,新抓取到的網(wǎng)頁被放入等待隊(duì)里,先入先處理。處理隊(duì)列(ProcesSUI ):這個(gè)隊(duì)列存放的是正要處理的網(wǎng)頁,網(wǎng)頁爬蟲程序開始處理的網(wǎng)頁,都是從這個(gè)隊(duì)列讀取的,同一個(gè)網(wǎng)頁不會(huì)重復(fù)放入這個(gè)隊(duì)里,避免被重復(fù)處理,浪費(fèi)時(shí)間造成信息冗余。當(dāng)這個(gè)隊(duì)列里的網(wǎng)頁被處理之后,被取出添加到錯(cuò)誤隊(duì)列
36、或者完成隊(duì)列中。錯(cuò)誤隊(duì)列(ErrorURL):如果網(wǎng)頁爬蟲在處理某個(gè)頁面的時(shí)候出現(xiàn)系統(tǒng)錯(cuò)誤,比如網(wǎng)頁錯(cuò)誤,那么這個(gè)網(wǎng)頁就被直接投遞到錯(cuò)誤隊(duì)列,被放入錯(cuò)誤隊(duì)列的網(wǎng)頁將被視為無效網(wǎng)頁,以后不會(huì)再對(duì)這個(gè)網(wǎng)頁進(jìn)行分析,這樣避免的資源的浪費(fèi)。完成隊(duì)列(LaunchURL):假如網(wǎng)頁爬蟲在處理網(wǎng)頁時(shí)分析正常,沒有發(fā)生錯(cuò)誤,對(duì)這個(gè)網(wǎng)頁分析提取信息之后,通常將這個(gè)網(wǎng)頁添加到完成隊(duì)列,同樣,在完成隊(duì)列中的網(wǎng)頁也不會(huì)再被處理,避免資源浪費(fèi)。也就是說對(duì)于四個(gè)隊(duì)列,某一時(shí)間段某個(gè)網(wǎng)頁只能存放在一個(gè)隊(duì)列中,網(wǎng)頁所處的位置反映這個(gè)網(wǎng)頁的狀態(tài),一般情況下,人們都采用狀態(tài)圖進(jìn)行計(jì)算機(jī)程序的描述,程序按照狀態(tài)圖,從其中的一種狀
37、態(tài)變換到另一個(gè)狀態(tài),實(shí)際上,當(dāng)發(fā)現(xiàn)URL鏈接的時(shí)候,網(wǎng)頁爬蟲會(huì)判斷該網(wǎng)頁的狀態(tài),首先查看它是否之前被放入完成隊(duì)列或錯(cuò)誤隊(duì)列中,如果網(wǎng)頁位于這兩個(gè)隊(duì)列中的話,說明這個(gè)網(wǎng)頁已經(jīng)被處理過或者不需要作處理,這時(shí)候網(wǎng)頁爬蟲不會(huì)再處理這個(gè)網(wǎng)頁,相反,這個(gè)網(wǎng)頁將被放入等待隊(duì)里中,等待爬蟲處理。通過隊(duì)列的管理,可避免某個(gè)頁面被多次重復(fù)進(jìn)行分析的情況,有效利用資源,提高分析效率,同時(shí)也防止因?yàn)榉磸?fù)處理錯(cuò)誤網(wǎng)頁造成的死循環(huán)。3.網(wǎng)頁信息截取本系統(tǒng)主要截取的有三種網(wǎng)頁信息,分別是超鏈接、簡(jiǎn)歷信息,包括姓名,日期,還有數(shù)據(jù)信息等等,根據(jù)頁面的不同的標(biāo)記,系統(tǒng)會(huì)自動(dòng)識(shí)別出標(biāo)記對(duì)應(yīng)的信息,并把信息存放到數(shù)據(jù)庫相應(yīng)位置。4
38、.5 功能實(shí)現(xiàn)數(shù)據(jù)抓取模塊主要實(shí)現(xiàn)用戶抓取數(shù)據(jù)信息的功能。信息爬取的實(shí)現(xiàn)過程主要分為4個(gè)步驟,分別為網(wǎng)頁分析、處理列隊(duì)、過濾、信息截取。而爬取到的信息類型主要有三種,分別為文本、圖片、超鏈接,系統(tǒng)會(huì)根據(jù)不同的標(biāo)記信息自動(dòng)保存到對(duì)應(yīng)的位置。例如:圖片會(huì)找到對(duì)應(yīng)的img標(biāo)簽,同過該標(biāo)簽的鏈接就可以查找到該圖片的位置。數(shù)據(jù)抓取功能模塊實(shí)現(xiàn)界面如圖4-3所示。圖4-3數(shù)據(jù)抓取模塊實(shí)現(xiàn)界面下面介紹網(wǎng)頁分析的實(shí)現(xiàn),下面為網(wǎng)頁分析算法的部分代碼實(shí)現(xiàn)。下面介紹網(wǎng)頁隊(duì)列處理的基本實(shí)現(xiàn),以下為隊(duì)列處理的部分核心代碼。為了提高用戶搜索的速度,在用戶輸入搜索關(guān)鍵詞時(shí),搜索框中達(dá)到第三個(gè)字符時(shí),系統(tǒng)會(huì)自動(dòng)把用戶輸入的關(guān)
39、機(jī)信息傳入到后臺(tái),進(jìn)行模糊查詢。本系統(tǒng)是通過dwr框架來實(shí)現(xiàn)的,dwr框架對(duì)ajax技術(shù)的一種封裝,使用這樣的框架能夠非常方便的使用ajax技術(shù)。具體的實(shí)現(xiàn)如下:下面主要講一下網(wǎng)頁過濾的基本實(shí)現(xiàn)網(wǎng)頁過濾的主要工作是過濾掉自己不感興趣網(wǎng)頁。在這里只描述部分類實(shí)現(xiàn),如下:下面為網(wǎng)頁信息截取的基本實(shí)現(xiàn),網(wǎng)頁信息截取主要工作就是截取不同網(wǎng)頁上的數(shù)據(jù)信息,如圖片、文本、鏈接等信息。首先,需要建立HttpClient實(shí)體類,然后通過Element類,實(shí)例化網(wǎng)頁的地址,該網(wǎng)頁中,包含標(biāo)題、文本、超鏈接等信息。在elerment類中有childNode方法,第一個(gè)節(jié)點(diǎn)是圖片信息,圖片路徑是通過document
40、.getElementById("largePic").attr("src")獲取的。然后截取不同的信息保存到數(shù)據(jù)庫中。具體實(shí)現(xiàn)參考代碼如下。5 總結(jié)與展望本文主要闡述了如何利用R語言工具開發(fā)一個(gè)性能優(yōu)化、可擴(kuò)展性強(qiáng)和安全可靠的爬蟲系統(tǒng)。系統(tǒng)主要實(shí)現(xiàn)了信息搜索、信息處理等功能。然后根據(jù)這些功能進(jìn)行分析設(shè)計(jì),對(duì)所有到的技術(shù)Scrapy框架、數(shù)據(jù)挖掘、爬蟲等技術(shù)進(jìn)行簡(jiǎn)要的介紹。接著進(jìn)行需求分析的描述。接著是概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。描述這個(gè)系統(tǒng)的部分功能的實(shí)現(xiàn)方案及過程。本設(shè)計(jì)所實(shí)現(xiàn)的是一個(gè)爬蟲系統(tǒng),主要介紹了R語言、Scrapy等技術(shù)。系統(tǒng)按照需求分析、各個(gè)功能
41、設(shè)計(jì)和代碼分析,爬蟲系統(tǒng)的基本功能已得到實(shí)現(xiàn)。由于時(shí)間及本人所學(xué)有限,該系統(tǒng)還有許多地方需要改進(jìn),并且還有許多自己未起到的功能,本人會(huì)在以后的學(xué)習(xí)過程中進(jìn)一步加強(qiáng)和完善。參考文獻(xiàn)1 李國(guó)慧.Web數(shù)據(jù)挖掘研究.數(shù)據(jù)庫與信息管理本 J ,2011年1月12日.2 王玉珍.Web數(shù)據(jù)挖掘的分析與探索 J .電腦開發(fā)與應(yīng)用 2013年4月.3 張莉.基于模糊聚類的案例聚類算法研究 J .教育與教學(xué)研究,2009年4月.4 葉苗群.web日志挖掘研究.寧波工程學(xué)院學(xué)報(bào) J ,2015年6月.5 Amato G, Bolettieri P, Falchi F, et al. Using Apache Lucene to Search Vector of Locally
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 品牌奶茶店管理制度
- 團(tuán)支部機(jī)構(gòu)管理制度
- 國(guó)企項(xiàng)目部管理制度
- 圖書資料室管理制度
- 坐月子中心管理制度
- 培訓(xùn)公寓化管理制度
- 處方與處方管理制度
- 外賣配送站管理制度
- 外貿(mào)部制度管理制度
- 夜總會(huì)女孩管理制度
- 2025年北京市第一次普通高中學(xué)業(yè)水平合格性考試歷史試題(含答案)
- 《醫(yī)療機(jī)構(gòu)重大事故隱患判定清單(試行)》知識(shí)培訓(xùn)
- 浙江省杭州市2024年中考英語真題(含答案)
- 《陸上風(fēng)電場(chǎng)工程設(shè)計(jì)概算編制規(guī)定及費(fèi)用標(biāo)準(zhǔn)》(NB-T 31011-2019)
- 復(fù)雜超限結(jié)構(gòu)設(shè)計(jì)要點(diǎn)
- 《硅酸鹽物理化學(xué)》word版
- 羽毛球社團(tuán)教案(共17頁)
- 下肢靜脈曲張?jiān)\斷及治療進(jìn)展PPT學(xué)習(xí)教案
- 化工企業(yè)41條禁令
- 2019-2020學(xué)年北京市海淀區(qū)上地實(shí)驗(yàn)小學(xué)北師大版四年級(jí)下冊(cè)期末考試數(shù)學(xué)試卷
- 裝修管理規(guī)則-城市綜合體---成都租戶指引
評(píng)論
0/150
提交評(píng)論