![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/16/21/7eb91023-6cc1-4498-a847-8746c4b3ecc9/7eb91023-6cc1-4498-a847-8746c4b3ecc9pic.jpg)
![新聞爬蟲系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文_第1頁](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/16/21/7eb91023-6cc1-4498-a847-8746c4b3ecc9/7eb91023-6cc1-4498-a847-8746c4b3ecc91.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘要</b></p><p> 隨著網(wǎng)絡(luò)在世界范圍的飛速發(fā)展,互聯(lián)網(wǎng)作為最具潛力與活力的媒體已經(jīng)被公認(rèn)是繼報紙,廣播,電視之后的“第四媒體”,成為反映社會新聞熱點的重要載體。為了及時了解網(wǎng)絡(luò)新聞熱點,相關(guān)機(jī)構(gòu)引入了新聞熱點分析系統(tǒng)。本文設(shè)計的新聞爬蟲系統(tǒng)是新聞熱點分析系統(tǒng)的數(shù)據(jù)源,負(fù)責(zé)新聞信息的采集。</p><p> 本文借助于爬蟲
2、領(lǐng)域的相關(guān)技術(shù)與工具,結(jié)合新聞熱點分析系統(tǒng)的需求從原理或工作流程上詳細(xì)論述了爬蟲系統(tǒng)中核心模塊的具體實現(xiàn)。</p><p> 本文所描述的新聞爬蟲系統(tǒng)其數(shù)據(jù)來源主要是新浪新聞,首先利用爬蟲工具將新聞數(shù)據(jù)獲取到本地數(shù)據(jù)庫中,然后將新聞信息以及新聞分析的結(jié)果將在前臺網(wǎng)頁中進(jìn)行可視化輸出。本文主要進(jìn)行了以下幾個方面的工作:
3、 </p><p> 1)利用Java語言結(jié)合HTTPClient開源工具編寫了一個針對新浪新聞的可擴(kuò)展的網(wǎng)絡(luò)爬蟲,該爬蟲程序能夠按照廣度優(yōu)先的爬行策略對新聞數(shù)據(jù)(包括圖片信息)進(jìn)行全面的定向抓取以及周期性的增量抓??;</p><p> 2)采用HTMLParser對獲取到的新聞信息進(jìn)行元數(shù)據(jù)抽取,將新聞的編號、標(biāo)題、內(nèi)容、發(fā)布方、發(fā)布時間等元數(shù)據(jù)以及新聞圖片等元數(shù)據(jù)解
4、析出來并存入SQL Server數(shù)據(jù)庫中;</p><p> 3)前端界面利用開源AJAX框架ExtJS結(jié)合Servlet進(jìn)行實現(xiàn),兼顧用戶交互方式的多樣性以及系統(tǒng)的跨瀏覽器兼容性。</p><p> 通過使用該新聞爬取系統(tǒng),用戶能夠?qū)崟r的更新新聞信息,及時、全面、準(zhǔn)確地掌握新聞熱點動態(tài),提高對于重大突發(fā)事件的處理能力,對于更及時,全面的了解各地的實時信息具有重要意義。</p&g
5、t;<p> 關(guān)鍵詞:新聞熱點,網(wǎng)絡(luò)爬蟲,元數(shù)據(jù)抽取,可視化</p><p><b> ABSTRACT</b></p><p> With the rapid development of World Wide Web(WWW),it is widely</p><p> accepted that the intern
6、et,called the Fourth Media,will be the most potential</p><p> and energetic media after newspaper,radio and television as an important carrier of the hot society news.In order to know the internet hot news
7、in time,the related organizations introduced the hot news and analysis system. The news spider system is in the information collection layer and is the fundamental part of hot news analysis system.It is responsible for t
8、he information collection .</p><p> In the help of related technologies and tools and with the needs of the system itself ,the paper discuss the concrete realization of the code module in detail .</p>
9、;<p> The data of the news spider system comes from news of sina . First using web crawler to get data from news to local database , finally visualize the public opinion information on the front page. This articl
10、e mainly has carried on the following several aspects work: </p><p> 1) Using Java and HTTPClient developed a scalable web crawler which focus on DISC
11、UZ BBS. Besides, this crawler can conduct a comprehensive orientation of fetching and periodic increment of fetching from BBS data (including the BBS post information and all its replies) under breadth-first strategy.
12、</p><p> 2)Using HTMLParser to extract meta-data from the BBS information, parsed and stored the meta-data, such as number, title, content, poster, posting time and the corresponding reply in a SQL Server d
13、atabase.</p><p> 3) front-end interface combined with the use of open source AJAX framework ExtJS Servlet be achieved, taking into account the diversity of user interaction and system cross-browser compatib
14、ility.</p><p> By using this news crawling system, users can real-time news and information updated, timely, comprehensive and accurate grasp of hot news developments, improve the handling capacity of major
15、 emergencies, for more timely and comprehensive understanding of an important real-time information across significance.</p><p> Key Words: Hot news,Web crawler,Metadata extraction,Visualization</p>
16、<p><b> 目錄</b></p><p><b> 1 緒論1</b></p><p> 1.1 開發(fā)背景及目的1</p><p> 1.2 國內(nèi)外相關(guān)研究現(xiàn)狀3</p><p> 1.3 論文主要內(nèi)容和章節(jié)安排4</p><p> 2 系
17、統(tǒng)開發(fā)知識準(zhǔn)備6</p><p> 2.2 J2EE技術(shù)簡介7</p><p> 2.3 SQL Server 2005簡介8</p><p> 2.4 ExtJS簡介10</p><p> 2.5開源工具簡介12</p><p> 2.5本章小結(jié)13</p><p>
18、3 系統(tǒng)需求分析14</p><p> 3.1 系統(tǒng)可行性研究14</p><p> 3.2 用戶對象分析15</p><p> 3.3 用戶用例分析16</p><p> 3.4 功能需求分析20</p><p> 3.5 性能需求分析21</p><p> 3.6 本
19、章小結(jié)21</p><p> 4 系統(tǒng)總體設(shè)計23</p><p> 4.1 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計23</p><p> 4.2 系統(tǒng)功能模塊設(shè)計25</p><p> 4.3 本章小結(jié)31</p><p> 5 系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)32</p><p> 5.1 數(shù)據(jù)獲取模塊
20、32</p><p> 5.2 數(shù)據(jù)可視化模塊36</p><p> 5.3 本章小結(jié)43</p><p> 6 系統(tǒng)測試與發(fā)布44</p><p> 6.1 軟件測試的目標(biāo)和方法44</p><p> 6.2 測試用例45</p><p> 6.3 本章小結(jié)49<
21、/p><p><b> 7 總結(jié)50</b></p><p><b> 參考文獻(xiàn)52</b></p><p><b> 8 致謝詞53</b></p><p> 附錄1 英文原文54</p><p> 附錄2 中文譯文64</p&g
22、t;<p><b> 1 緒論 </b></p><p> 本章主要闡明了該課題的研究背景及其研究意義,簡要說明了國內(nèi)外對于爬蟲系統(tǒng)的研究現(xiàn)狀,并介紹了本論文的主要內(nèi)容組成以及論文的組織結(jié)構(gòu)。</p><p> 1.1 開發(fā)背景及目的</p><p> 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用的普及,網(wǎng)絡(luò)作為信息的載體,已經(jīng)成為社會大眾
23、參與社會生活的一種重要信息渠道。由于互聯(lián)網(wǎng)是開放的,每個人都可以在網(wǎng)絡(luò)上發(fā)表信息,內(nèi)容涉及各個方面。小到心情日志,大到國家大事?;ヂ?lián)網(wǎng)已成為思想文化信息的集散地,并具有傳統(tǒng)媒體無法相比的優(yōu)勢:便捷性,虛擬性,互動性,多元性。</p><p> 網(wǎng)絡(luò)新聞熱點通常形成迅速,多是人們對于日常生活中的各種問題發(fā)表的各種意見,評論,態(tài)度,情緒等,隨著事件的發(fā)展而變化,是反映社會熱點的重要載體之一。</p>
24、<p> 網(wǎng)絡(luò)爬蟲是一種按照一定上網(wǎng)規(guī)則,自動的抓取萬維網(wǎng)信息的程序或腳本。網(wǎng)絡(luò)檢索功能起于互聯(lián)網(wǎng)內(nèi)容爆炸性發(fā)展所帶來的對內(nèi)容檢索的需求。搜素引擎不斷發(fā)展,人們的需求也不斷提高,網(wǎng)絡(luò)信息搜索已經(jīng)成為人們每天都有進(jìn)行的內(nèi)容。如何使搜索引擎能夠時刻滿足人們的需求?最初的檢索功能通過索引站的方式實現(xiàn),從而有了網(wǎng)絡(luò)機(jī)器人。本課題來源于新聞爬蟲系統(tǒng)項目的建設(shè),旨在為相關(guān)機(jī)構(gòu)提供及時的網(wǎng)絡(luò)信息服務(wù)。這些服務(wù)與現(xiàn)有的搜索引擎提供的服務(wù)不同
25、,其重要特征主要體現(xiàn)在:及時性,專用性,人性化。</p><p><b> 及時性</b></p><p> 新聞爬蟲系統(tǒng)通過爬蟲技術(shù)自動爬取新聞信息,定期對相應(yīng)類型的新聞的地址進(jìn)行掃描,如若該新聞并未被爬取過則對其進(jìn)行自動爬取。讓系統(tǒng)的工作人員可以靜觀事態(tài)的發(fā)展。</p><p><b> 專用性</b></
26、p><p> 新聞爬蟲系統(tǒng)的專用性體現(xiàn)在數(shù)據(jù)采集,數(shù)據(jù)分析,數(shù)據(jù)展現(xiàn)等幾個環(huán)節(jié)上。在數(shù)據(jù)采集方面系統(tǒng)采用手動爬取與增量爬取相結(jié)合的方式。有針對性的采集需要的幾個類別的新聞信息,并對信息進(jìn)行抽取,去噪,結(jié)構(gòu)化處理,為后續(xù)專用分析創(chuàng)造條件。在數(shù)據(jù)分析與數(shù)據(jù)展示方面,系統(tǒng)通過對得到的信息進(jìn)行深入的分析,將分析結(jié)果進(jìn)行多維度的展現(xiàn)。</p><p><b> 人性化</b>&
27、lt;/p><p> 新聞爬蟲系統(tǒng)的人性化主要體現(xiàn)在數(shù)據(jù)結(jié)果的展示上。 用戶可以隨時查看任意一個時間的新聞分析結(jié)果,而且該系統(tǒng)由于是基于多線程的程序完成任務(wù)的效率高。所以不管實在界面上還是在效率上都非常的人性化。</p><p> 新聞爬蟲系統(tǒng)項目建設(shè)意義重大。一方面,新聞爬蟲系統(tǒng)提供了大量的分析素材,方便全面的了解大眾網(wǎng)絡(luò)新聞的熱點。另一方面,原來的新聞信息收集工作主要依靠人工完成,工作
28、量巨大,覆蓋面小,不僅費(fèi)時費(fèi)力而且還不免出現(xiàn)人為疏漏的情況,這種局面亟待通過技術(shù)手段提高工作效率。</p><p> 本文完成的是新聞爬蟲系統(tǒng)的設(shè)計與實現(xiàn),該爬蟲系統(tǒng)為新聞分析系統(tǒng)提供數(shù)據(jù)源,完成新聞信息的搜集。因此可以說爬蟲系統(tǒng)是整個分析系統(tǒng)的基礎(chǔ),并且爬蟲系統(tǒng)輸出結(jié)果的好壞直接影響著系統(tǒng)結(jié)果的展現(xiàn)。 </p><p> 1.2 國內(nèi)外相關(guān)研究現(xiàn)狀</p><p&
29、gt; 1.2.1 網(wǎng)絡(luò)爬蟲</p><p> 從搜索對象上來分類,主流的的爬蟲技術(shù)包括以下兩種:</p><p> 第一種是基于鏈接分析的搜索。上世紀(jì)九十年代,國外的搜索引擎開發(fā)者已經(jīng)開始以社會網(wǎng)絡(luò)工作為模型,對萬維網(wǎng)進(jìn)行模擬。專家們通過社會間人與人的關(guān)系網(wǎng),設(shè)計研發(fā)出了頁面間的超鏈接關(guān)系網(wǎng)絡(luò)。同時他們還驚奇的發(fā)現(xiàn),相似度最高的在傳統(tǒng)引文方面。這樣通過對照就可以分析得出結(jié)論,從關(guān)系
30、網(wǎng)絡(luò)的角度入手,就能將互聯(lián)網(wǎng)上大量的網(wǎng)頁進(jìn)行分類。早在2002年,歐美地區(qū)便出現(xiàn)了這種最原始的基于鏈接的搜索系統(tǒng)。</p><p> 第二種是基于內(nèi)容分析的搜索。相對于基于鏈接分析的搜索方式,這是搜索技術(shù)的一個突破性進(jìn)展,他們采取了一種新的思維方式,建立一個針對主題的詞庫。當(dāng)用戶在專業(yè)領(lǐng)域進(jìn)行搜索時,可以將詞庫和爬蟲結(jié)合起來進(jìn)行檢索。由于搜索角度的轉(zhuǎn)變,這種新的技術(shù)逐漸開始被人們所關(guān)注。在上世紀(jì)九十年代,F(xiàn)is
31、h Search System系統(tǒng)作為首個基于內(nèi)容分析的搜索系統(tǒng)被開發(fā)出來。后來在1998年和1999年相繼出現(xiàn)了Shark Search System和聚焦爬蟲(Focused Crawler)[1]。</p><p> 時至今日,聚焦爬蟲技術(shù)取得了長足的發(fā)展和進(jìn)步,國外典型的系統(tǒng)包括CORA、IBM Focused Crawler等。CORA 是由美國卡內(nèi)基梅隆大學(xué)的A.K.McCallum和M.Nigam
32、等人于1999年針對計算機(jī)科學(xué)設(shè)計的一個主題型搜索引擎。CORA采用機(jī)械認(rèn)知的方式,其主要針對的對象是與計算機(jī)主題相關(guān)聯(lián)的內(nèi)容,通過隱性馬爾夫的原理對用戶需要的內(nèi)容進(jìn)行分類。雖然CORA分析地址和主題的能力還很不足,同時也不具備對網(wǎng)頁進(jìn)行分析的能力,但是這仍然無法抹殺它在自動搜集資源方面取得的重大成就。 </p><p> S.Chakrabarti在本世紀(jì)初提出了IBM Focused Cra
33、wler,這是一種全新的爬行系統(tǒng)。從現(xiàn)在的技術(shù)來看,當(dāng)時的IBM Focused Crawler采取了全新雙模塊系統(tǒng),即分類器和選擇器。分類器主要用于計算相關(guān)度,而選擇器用來確定主要頁面。S.Chakrabarti在隨后的開發(fā)過程中對整個系統(tǒng)進(jìn)行了進(jìn)一步的完善,使得該系統(tǒng)在準(zhǔn)確度和相關(guān)度方面有了大幅度的提升[2]。</p><p> 美國人Diligenti采取建立上下文圖的方式設(shè)計出了聚焦爬蟲,他們將其命名為
34、Context Graphs Focused Crawler。這種通過學(xué)習(xí)網(wǎng)頁引用關(guān)系的方法后來被證明效率并不高,但在當(dāng)時也是重要的創(chuàng)新手段。系統(tǒng)會利用反向鏈接服務(wù)找到指向該頁面的網(wǎng)頁,在這兩層網(wǎng)頁之間建立引用關(guān)系,由此建立聚焦爬蟲的爬行路徑。通過用戶搜索參數(shù)的改變,每一個頁面都會建立一個對應(yīng)的引用關(guān)系,最后將他們進(jìn)行合并。在這個過程中,分類器會確定他們的層級關(guān)系,確定之后,頁面的鏈接便會加入隊列,由此提取到所有需要進(jìn)行抓取的網(wǎng)頁[3]
35、。</p><p> 對于基于內(nèi)容分析的搜索,國人也做出了很大貢獻(xiàn)。張福炎教授設(shè)計出了IDGS(Internet Data Gather System)系統(tǒng),可以對萬維網(wǎng)上的中英文內(nèi)容進(jìn)行搜索,大大的填補(bǔ)了中文方面的空白。IDGS 能夠在萬維網(wǎng)上對信息進(jìn)行自動查詢,采用向量空間模型技術(shù)對內(nèi)容進(jìn)行檢索,同時利用權(quán)重評價技術(shù)來進(jìn)行統(tǒng)計。在該系統(tǒng)中由模式匹配模塊計算相關(guān)度,采取漫游模型來進(jìn)行后期的持續(xù)檢索。該系統(tǒng)的最
36、大優(yōu)點是準(zhǔn)確度高,其代價是犧牲了覆蓋度,搜索的深度非常有限[4]。</p><p> 1.3 論文主要內(nèi)容和章節(jié)安排</p><p> 本文對于新聞爬蟲系統(tǒng)的設(shè)計與實現(xiàn)過程作出了詳細(xì)介紹,該系統(tǒng)的數(shù)據(jù)來源主要是網(wǎng)絡(luò)網(wǎng)頁新聞。本系統(tǒng)的運(yùn)行流程大致如下:首先利用爬蟲工具將新聞數(shù)據(jù)獲取到本地數(shù)據(jù)庫中,之后對其進(jìn)行數(shù)據(jù)分析,最后將新聞內(nèi)容信息以及分析結(jié)果在前臺網(wǎng)頁中進(jìn)行可視化輸出。</p
37、><p> 為緒論,主要闡明了該課題的研究背景及其研究意義,簡要說明了國內(nèi)外對于爬蟲系統(tǒng)的研究現(xiàn)狀,并介紹了本論文的主要內(nèi)容組成以及論文的組織結(jié)構(gòu)。</p><p> 為系統(tǒng)開發(fā)知識準(zhǔn)備,簡要介紹了進(jìn)行本次新聞爬蟲系統(tǒng)開發(fā)所需要的相關(guān)理論和技術(shù),主要包括爬蟲技術(shù)的知識理論和J2EE技術(shù)、SQL Server 2005數(shù)據(jù)庫管理系統(tǒng)以及ExtJS框架等相關(guān)知識,并對系統(tǒng)開發(fā)過程中用到的一些關(guān)
38、鍵開源工具做出了簡要說明。</p><p> 對本系統(tǒng)進(jìn)行了需求分析,首先從技術(shù)可行性、操作可行性和經(jīng)濟(jì)可行性三個方面對系統(tǒng)可行性進(jìn)行了評估,隨后對系統(tǒng)的用戶對象和用戶用況從管理員用戶和普通用戶兩個角度進(jìn)行了詳細(xì)的分析,并分別總結(jié)出了相應(yīng)的功能需求,最后對系統(tǒng)的性能需求進(jìn)行了簡要分析。</p><p> 對本系統(tǒng)進(jìn)行了總體設(shè)計,包括數(shù)據(jù)庫結(jié)構(gòu)的總體設(shè)計以及系統(tǒng)功能模塊的總體設(shè)計,并對數(shù)
39、據(jù)獲取功能模塊的子模塊以及數(shù)據(jù)可視化功能模塊的功能結(jié)構(gòu)做出了明確的劃分,為系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)階段的工作備好條件。</p><p> 對本系統(tǒng)的詳細(xì)設(shè)計和實現(xiàn)過程做出了說明,進(jìn)行了功能模塊的詳細(xì)設(shè)計并完成了系統(tǒng)的開發(fā)實現(xiàn)工作,對于數(shù)據(jù)獲取模塊以及數(shù)據(jù)可視化模塊進(jìn)行了詳細(xì)的設(shè)計實現(xiàn)和功能說明。</p><p> 進(jìn)行了系統(tǒng)測試和發(fā)布工作,首先從理論上對軟件測試的目標(biāo)和方法進(jìn)行了簡要介紹,之
40、后設(shè)計了多個測試用例對系統(tǒng)的相關(guān)功能模塊進(jìn)行了詳細(xì)的測試并對測試結(jié)果進(jìn)行了分析,最后將本系統(tǒng)通過TOMCAT部署到了PC服務(wù)器上,完成了系統(tǒng)發(fā)布的過程。 </p><p> 對于本次系統(tǒng)設(shè)計開發(fā)過程進(jìn)行了歸納和總結(jié),闡述了本次系統(tǒng)開發(fā)的意義并分析了下一步需要進(jìn)行的工作,最后對網(wǎng)絡(luò)輿情分析系統(tǒng)的發(fā)展方向進(jìn)行了展望。</p><p> 2 系統(tǒng)開發(fā)知識準(zhǔn)備</p><
41、;p> 本章簡要介紹了進(jìn)行本次新聞爬蟲系統(tǒng)開發(fā)所需要的相關(guān)理論和技術(shù),這些關(guān)鍵技術(shù)的學(xué)習(xí)和掌握為接下來的系統(tǒng)分析及設(shè)計實現(xiàn)提供了堅實的理論基礎(chǔ)。</p><p> 2.1 網(wǎng)絡(luò)爬蟲的相關(guān)知識與理論</p><p> 2.1.1 網(wǎng)絡(luò)爬蟲的定義</p><p> 網(wǎng)絡(luò)爬蟲是一個自動提取網(wǎng)頁的程序,它為搜索引擎從WEB上下載網(wǎng)頁,是搜索引擎的重要組成部分。
42、通用網(wǎng)絡(luò)爬蟲從一個或幾個初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL列表;在抓取網(wǎng)頁的過程中不斷從當(dāng)前網(wǎng)頁上抽取新的URL放入到待爬行隊列,直到滿足系統(tǒng)的停止條件。</p><p> 2.1.2 頁面搜索策略介紹</p><p> 網(wǎng)頁的爬取策略可分為深度優(yōu)先,廣度優(yōu)先和最佳優(yōu)先三種。深度優(yōu)先在很多時候會導(dǎo)致爬蟲的陷入問題,目前常見的是廣度優(yōu)先和最佳優(yōu)先方法。</p>&
43、lt;p> 廣度優(yōu)先策略是指在爬取過程中,在完成當(dāng)前層次的搜索后,才進(jìn)行下一層次的搜索。在目前為覆蓋盡可能多的網(wǎng)頁,一般使用廣度優(yōu)先搜索算法。也有很多研究將廣度優(yōu)先算法應(yīng)用于聚焦爬蟲上。其基本思想是認(rèn)為與初始URL在一定鏈接距離內(nèi)的網(wǎng)頁具有主題相關(guān)性的概率很大。</p><p> 最佳優(yōu)先策略是按照一定的網(wǎng)頁分析算法,預(yù)測候選URL與目標(biāo)網(wǎng)頁的相似度,或與主題的相關(guān)性,并選評價最好的一個或幾個URL進(jìn)行
44、抓取。</p><p> 它只訪問經(jīng)過網(wǎng)頁任意算法預(yù)測為“有用”的網(wǎng)頁。存在的一個問題是,在爬蟲抓取路徑上的很多相關(guān)網(wǎng)頁可能被忽略。因為最佳優(yōu)先策略是一種局部最優(yōu)搜索算法。因此需要在應(yīng)用中對最佳優(yōu)先策略進(jìn)行改進(jìn),以跳出局部最優(yōu)點。</p><p> 2.2 J2EE技術(shù)簡介</p><p> J2EE指的是Java2平臺企業(yè)版(Java 2 Platform
45、, Enterprise Edition)。J2EE的核心是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共同的標(biāo)準(zhǔn)及規(guī)格,讓各種依循J2EE架構(gòu)的不同平臺之間存在良好的兼容性,一方面解決了過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容的問題,另一方面使得企業(yè)擺脫了內(nèi)部和外部難以互通的窘境。</p><p> J2EE組件和“標(biāo)準(zhǔn)的”Java類的不同點在于:它被裝配在一個J2EE應(yīng)用中,具有固定
46、的格式并遵守J2EE規(guī)范,由J2EE服務(wù)器對其進(jìn)行管理。J2EE規(guī)范是這樣定義J2EE組件的:客戶端應(yīng)用程序和Applet是運(yùn)行在客戶端的組件;Java Servlet和Java Server Pages (JSP) 是運(yùn)行在服務(wù)器端的Web組件;Enterprise Java Bean (EJB )是運(yùn)行在服務(wù)器端的業(yè)務(wù)組件。</p><p> J2EE體系結(jié)構(gòu)提供中間層集成框架用來滿足無需太多費(fèi)用而又需要高
47、可用性、高可靠性以及可擴(kuò)展性的應(yīng)用的需求。通過提供統(tǒng)一的開發(fā)平臺,J2EE降低了開發(fā)多層應(yīng)用的費(fèi)用和復(fù)雜性,同時提供對現(xiàn)有應(yīng)用程序集成的強(qiáng)有力支持,極大地提高了系統(tǒng)的運(yùn)行效率和安全性。</p><p> J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個應(yīng)用組件根據(jù)他們所在的層分布在不同的機(jī)器上。事實上,SUN設(shè)計J2EE的初衷正是為了解決兩層模式(Client/Server)的弊端。傳統(tǒng)的客戶端
48、往往承擔(dān)了太多的功能,導(dǎo)致客戶端比較臃腫,升級很不方便。而J2EE中使用的多層軟件模型將原來簡單的模型切成幾層解耦的獨(dú)立功能層,每一層完成特定的任務(wù),方便升級系統(tǒng)并更改應(yīng)用的邏輯[5]。典型的J2EE應(yīng)用體系結(jié)構(gòu)如圖2-1所示:</p><p> 圖2-1 J2EE體系結(jié)構(gòu)圖</p><p> 總體來說,使用J2EE技術(shù)開發(fā)Web事務(wù)系統(tǒng)有以下優(yōu)點:第一,開發(fā)高效,J2EE有完善的開源
49、社區(qū)支持,像Spring,Struts這些框架可以大大縮短開發(fā)周期;第二,支持不同的操作系統(tǒng)環(huán)境,因為Java天生具有“一次編譯,隨處運(yùn)行”的特點,基于J2EE開發(fā)的應(yīng)用程序不依賴特定的操作系統(tǒng)、硬件等,也就具有了開發(fā)一次就可以在各個平臺部署的特點;第三,穩(wěn)定的高可用性,得益于從Java繼承而來的跨平臺特性,J2EE系統(tǒng)部署到可靠的操作環(huán)境中,一些對系統(tǒng)魯棒性要求很高的大型商務(wù)系統(tǒng)可以選擇比Windows更為健壯的Linux操作系統(tǒng),這
50、是更為理想的選擇。</p><p> 2.3 SQL Server 2005簡介</p><p> Microsoft SQL Server 2005是一個全面的數(shù)據(jù)庫平臺,使用集成的商業(yè)智能工具提供了企業(yè)級的數(shù)據(jù)管理方式。Microsoft SQL Server 2005數(shù)據(jù)庫引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲功能,使得用戶可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)
51、應(yīng)用程序。</p><p> SQL Server是由Microsoft開發(fā)和推廣的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(DBMS),它最初是由Microsoft、Sybase、Ashton-Tate三家公司共同開發(fā)的,并于1988年推出了第一個在OS/2版本上運(yùn)行的SQL Server系統(tǒng)。1992年Sybase和Microsoft這兩家公司將SQL Server移植到了Windows NT操作系統(tǒng)上,后來Microsoft致
52、力于Windows NT平臺的SQL Server的開發(fā),而Sybase則專注于SQL Server在UNIX上的應(yīng)用[6]。</p><p> 近年來在Microsoft SQL Server的發(fā)展歷程中不斷更新版本:1996年發(fā)布的SQL Server6.5版本,該版本具備了市場所需的速度快、功能強(qiáng)、易使用和價格低等有點;1998年推出了SQL Server7.0版本,該版本再一次對核心數(shù)據(jù)庫引擎進(jìn)行了重大
53、改寫,在操作上更加簡單、易用,因此獲得了良好的聲譽(yù);2000年,發(fā)布了SQL Server 2000版本,該版本在可擴(kuò)縮性和可靠性上有了很大的改進(jìn),成為企業(yè)級數(shù)據(jù)庫市場中重要的一員;2005年,發(fā)布了SQL Server 2005版本,該版本擴(kuò)展了SQL Server 2000的性能,如在可靠性、可用性、可編程性和易用性等方面做出了重大改進(jìn)。SQL Server 2005引入了.NET Framework,允許構(gòu)建.NET SQL Se
54、rver專有對象,從而使SQL Server數(shù)據(jù)庫具有靈活的功能。</p><p> SQL Server 2005的常見版本包括如下四種:</p><p> 1)個人版(Personal Edition):用于單機(jī)系統(tǒng)或客戶機(jī);</p><p> 標(biāo)準(zhǔn)版(Standard Edition):用于小型的工作組或部門;</p><p>
55、 3)企業(yè)版(Enterprise Edition):支持所有的SQL Server 2005特性,可作為大型Web站點、企業(yè)OLTP(聯(lián)機(jī)事務(wù)處理)以及數(shù)據(jù)倉庫系統(tǒng)等的產(chǎn)品數(shù)據(jù)庫服務(wù)器;</p><p> 4)開發(fā)者版(Developer Edition):用于程序員開發(fā)應(yīng)用程序,這些程序需要SQL Server 2005作為數(shù)據(jù)庫存儲設(shè)備[7]。</p><p> 2.4 ExtJ
56、S簡介</p><p> ExtJS是一個JavaScript庫,功能強(qiáng)大,界面美觀,可以使用AJAX, DHTML,DOM等技術(shù)來開發(fā)網(wǎng)絡(luò)應(yīng)用程序。ExtJS可以用來開發(fā)富互聯(lián)網(wǎng)應(yīng)用(RIA:Rich Internet Applications),主要用于創(chuàng)建前端用戶界面,是一個與后臺技術(shù)無關(guān)的前端AJAX框架。因此,可以把ExtJS用在.NET、Java以及PHP等多種開發(fā)語言中。</p>&
57、lt;p> ExtJS最開始基于YUI技術(shù),由開發(fā)人員Jack Slocum開發(fā),通過參考Java SWING等機(jī)制來組織可視化組件,從UI界面上CSS樣式的應(yīng)用,到數(shù)據(jù)解析過程中的異常處理,都可算是一款不可多得的JavaScript客戶端技術(shù)的精品。</p><p> ExtJS的組件結(jié)構(gòu)如圖2-3所示:</p><p> 圖2-3 ExtJS組件結(jié)構(gòu)圖</p>
58、<p> ExtJS初期僅是對Yahoo! UI的對話框擴(kuò)展,后來逐漸有了自己的特色,深受技術(shù)研發(fā)人員的喜愛。發(fā)展至今,ExtJS除YUI外還支持包括jQuery、Prototype等多種JS底層庫,可以讓開發(fā)人員自由進(jìn)行選擇[8]。該框架完全基于純HTML/CSS+JS技術(shù),提供豐富的跨瀏覽器UI組件,靈活采用JSON/XML數(shù)據(jù)源開發(fā),使得服務(wù)端表示層的負(fù)荷真正得以減輕。</p><p><
59、;b> 2.5開源工具簡介</b></p><p> 2.4.1 HTTPClient</p><p> HTTPClient是Apache Jakarta Common下的子項目,可以用來提供高效的、最新的、功能豐富的支持HTTP協(xié)議的客戶端編程工具包。</p><p> HTTP協(xié)議可能是現(xiàn)在Internet上使用得最多、最重要的協(xié)議了
60、,越來越多的Java應(yīng)用程序需要直接通過HTTP協(xié)議來訪問網(wǎng)絡(luò)資源。雖然在 JDK的java.net包中已經(jīng)提供了訪問HTTP協(xié)議的基本功能,但是對于大部分應(yīng)用程序來說,JDK庫本身提供的功能還不夠豐富和靈活。HTTPClient已經(jīng)應(yīng)用在很多大型的項目中,比如Apache Jakarta上很著名的另外兩個開源項目Cactus和HTMLUnit都使用了HTTPClient。</p><p> HTTPClien
61、t所提供的主要功能包括:</p><p> 實現(xiàn)了所有HTTP的方法(GET,POST,PUT,HEAD 等);</p><p><b> 支持自動轉(zhuǎn)向;</b></p><p> 支持 HTTPS 協(xié)議;</p><p><b> 支持代理服務(wù)器。</b></p><p
62、> 2.4.2 HTMLParser</p><p> HTMLParser是一個利用純Java語言編寫的進(jìn)行HTML解析的庫,它不依賴于其它的Java庫文件,主要用于改造或提取HTML,其特點是能夠超高速解析HTML文件,而且不會出錯。作為目前最為方便易用的進(jìn)行HTML解析和信息提取的工具,HTMLParser已經(jīng)成為了抓取網(wǎng)頁數(shù)據(jù)和改造HTML的內(nèi)容的首選工具。</p><p&g
63、t; HTMLParser主要包含以下兩個方面的功能:</p><p><b> 1)信息提取功能:</b></p><p> 文本信息抽取,例如對HTML進(jìn)行有效信息搜索;</p><p> 鏈接提取,用于自動給頁面的鏈接文本加上鏈接的標(biāo)簽;</p><p> 資源提取,例如對一些圖片、聲音的資源的處理;&l
64、t;/p><p> 鏈接檢查,用于檢查HTML中的鏈接是否有效;</p><p><b> 頁面內(nèi)容的監(jiān)控。</b></p><p><b> 2)信息轉(zhuǎn)換功能:</b></p><p> 鏈接重寫,用于修改頁面中的所有超鏈接;</p><p> 網(wǎng)頁內(nèi)容拷貝,用于將網(wǎng)
65、頁內(nèi)容保存到本地;</p><p> 內(nèi)容檢驗,可以用來過濾網(wǎng)頁上一些令人不愉快的字詞;</p><p> HTML信息清洗,把本來亂七八糟的HTML信息格式化;</p><p> 轉(zhuǎn)成XML格式數(shù)據(jù)。</p><p><b> 2.5本章小結(jié)</b></p><p> 本章簡要介紹了進(jìn)
66、行本次新聞爬蟲系統(tǒng)開發(fā)所需要的相關(guān)理論和技術(shù),主要包括網(wǎng)絡(luò)爬蟲的定義,爬取策略等理論知識,J2EE技術(shù)、SQL Server 2005數(shù)據(jù)庫管理系統(tǒng)以及ExtJS框架相關(guān)知識,并對系統(tǒng)開發(fā)過程中用到的一些關(guān)鍵開源工具做出了簡要說明,這些關(guān)鍵技術(shù)的學(xué)習(xí)和掌握為接下來的系統(tǒng)分析及設(shè)計實現(xiàn)提供了堅實的理論基礎(chǔ)。</p><p><b> 3 系統(tǒng)需求分析</b></p><p
67、> 需求分析階段的主要工作就是分析用戶的需求是什么,是指針對軟件所要解決的問題進(jìn)行詳細(xì)的分析,明確對軟件系統(tǒng)的輸入輸出要求。本章主要從系統(tǒng)可行性、用戶對象、用戶用例、功能需求以及性能需求五個方面進(jìn)行詳細(xì)的系統(tǒng)需求分析。</p><p> 3.1 系統(tǒng)可行性研究</p><p> 3.1.1 技術(shù)可行性</p><p><b> 1)軟件可行性
68、</b></p><p> 新聞爬蟲系統(tǒng)所需要的數(shù)據(jù)源可以通過編寫網(wǎng)絡(luò)爬蟲程序來實現(xiàn)定向抓取,通過定制爬行過程中的過濾條件和爬行策略,爬蟲程序所獲取的數(shù)據(jù)量和抓取的效率都能得到很好的保證。</p><p> 新聞信息的可視化模塊可以通過借助Google Visualization API動態(tài)地將新聞顯示在交互方式非常豐富的圖表上,再結(jié)合ExtJS構(gòu)建一個富互聯(lián)網(wǎng)應(yīng)用,整個系
69、統(tǒng)能夠提供良好的用戶體驗。</p><p><b> 硬件可行性</b></p><p> 新聞爬蟲系統(tǒng)需要進(jìn)行抓取和分析的數(shù)據(jù)量非常大,這對于服務(wù)器端數(shù)據(jù)庫的承載能力要求較高,通過較長時間的測試,目前主流的服務(wù)器完全可以勝任作為輿情分析系統(tǒng)服務(wù)器的要求。</p><p> 由于該新聞爬蟲系統(tǒng)采用B/S架構(gòu)方式,用戶僅需在瀏覽器端利用瀏覽
70、器進(jìn)入系統(tǒng)使用相關(guān)功能即可,當(dāng)前主流的個人電腦硬件配置完全滿足使用條件。</p><p> 3.1.2 操作可行性</p><p> 本系統(tǒng)在用戶界面層利用ExtJS框架結(jié)合Google Visualization API進(jìn)行構(gòu)建。ExtJS作為開源JavaScript框架,功能強(qiáng)大,界面美觀,使用AJAX技術(shù)開發(fā)RIA應(yīng)用。Google Visualization API所提供的圖表
71、工具作為Flex程序,具有極為豐富的交互效果。兩者相結(jié)合開發(fā)出的前臺網(wǎng)頁,保證了良好的用戶體驗,能夠滿足用戶實際操作的需要。</p><p> 3.1.3 經(jīng)濟(jì)可行性</p><p> 經(jīng)過不斷的系統(tǒng)完善和功能增強(qiáng)過程,成型之后的新聞爬蟲系統(tǒng)能夠為各個行業(yè)按需提供不同的服務(wù)。例如:為政府機(jī)關(guān)、公安、廣電、教育機(jī)構(gòu)提供輿情監(jiān)測服務(wù),為上市公司、投資機(jī)構(gòu)、金融監(jiān)管機(jī)構(gòu)提供口碑管理服務(wù),為各
72、類商業(yè)公司提供競爭情報管理、招投標(biāo)監(jiān)測、危機(jī)公關(guān)處理、市場調(diào)研、趨勢分析以及營銷效果評估等服務(wù)。綜上所述,新聞爬蟲分析系統(tǒng)具有非常強(qiáng)的經(jīng)濟(jì)可行性。</p><p> 3.2 用戶對象分析</p><p> 互聯(lián)網(wǎng)定向信息采集系統(tǒng)面對的客戶是特定的專業(yè)人群和企業(yè)機(jī)構(gòu),他們關(guān)心的信息一般限于特定的主題。出于性能和成本上的考量,本系統(tǒng)不需要也不可能對整個互聯(lián)網(wǎng)來做遍歷抓取。本系統(tǒng)的用戶一般是
73、新聞熱點分析部門或是各公安部門的觀察員。一般來說,他們無法將精力全部花在瀏覽各大網(wǎng)站新聞和BBS上,但是他們的職責(zé)需要他們對網(wǎng)絡(luò)上的信息有一個把握,尤其是和其興趣點、切身利益相關(guān)的帖子和新聞。</p><p> 對于企業(yè)公關(guān)來說,信息時代的到來導(dǎo)致危機(jī)的信息傳播比危機(jī)本身發(fā)展要快得多,媒體的報道也很難避免。他們需要不斷的知道外屆對企業(yè)的評價,是否有競爭對手惡意中傷等,從而在第一時間作出應(yīng)對措施,減少破壞性和蔓延
74、速度,以維護(hù)形象和贏得消費(fèi)者的同情和理解。</p><p> 對于行政機(jī)構(gòu)類用戶,他們需要對國內(nèi)重點論壇和新聞門戶網(wǎng)站,也包含國外部分敏感網(wǎng)站,特別是國外的Twitter,F(xiàn)acebook等網(wǎng)站進(jìn)行一些監(jiān)控,以對一些敏感事件進(jìn)行及時的發(fā)現(xiàn)、后續(xù)跟蹤,同時對于民意的聽取也很感興趣,從而做到對特殊事件的早發(fā)現(xiàn)、早預(yù)警,為及時處置奠定基礎(chǔ)。</p><p> 此外,還有很重要的一個方面的用戶
75、就是系統(tǒng)管理員,他們并不是新聞爬蟲系統(tǒng)的用戶,但是該管理員需要控制數(shù)據(jù)源的獲取邏輯,進(jìn)行數(shù)據(jù)的分析,并將分析結(jié)果進(jìn)行展示。</p><p> 3.3 用戶用例分析</p><p> 3.3.1 管理員用戶用例分析</p><p> 管理員用戶用例圖如圖3-1所示:</p><p> 圖3-1 管理員用戶用例圖</p>&
76、lt;p> 對于管理員用戶,其使用場景分為五大類:</p><p> 對爬蟲數(shù)據(jù)源進(jìn)行控制:包括對爬蟲爬取的數(shù)據(jù)源的增加和刪除,以及對被爬行網(wǎng)站的配置(例如改動HTML代碼關(guān)鍵字匹配特征以通過HTMLParser抓取到相應(yīng)類型的新聞)。數(shù)據(jù)源的配置需要定期進(jìn)行更新和維護(hù),系統(tǒng)需要提供有良好的接口,盡量降低配置的難度和維護(hù)的工作量。</p><p> 開始一次數(shù)據(jù)采集過程:手動采
77、集和增量采集(添加定時任務(wù))。兩者的本質(zhì)都是開啟網(wǎng)絡(luò)爬蟲對數(shù)據(jù)源網(wǎng)站根據(jù)抓取配置來執(zhí)行數(shù)據(jù)獲取的任務(wù),不同的是手動采集由管理員觸發(fā)后執(zhí)行一次特定任務(wù),增量采集會對部分更新頻率較高的網(wǎng)頁進(jìn)行周期性的抓取以達(dá)到服務(wù)器端數(shù)據(jù)庫實時更新的效果。</p><p> 對于數(shù)據(jù)庫中的新聞信息進(jìn)行分析。</p><p> 進(jìn)入WEB頁測試本地服務(wù)器和系統(tǒng)是否運(yùn)行正常。</p><p
78、> 將爬取的新聞信息以及分析的結(jié)果展示給用戶。</p><p> 3.3.2 普通用戶用例分析</p><p> 普通用戶用例圖如圖3-2所示:</p><p> 圖3-2 普通用戶用例圖</p><p> 對于普通用戶,其使用場景分為五種:</p><p><b> 查看各類新聞;<
79、/b></p><p> 按關(guān)鍵字,時間等多條件搜索新聞;</p><p> 查看新聞類別分析柱狀圖;</p><p> 查看新聞小類別分析柱狀圖;</p><p> 查看新聞數(shù)量隨月份的變化折線圖;</p><p> 查看在某一天新聞數(shù)量在一天中的變化折線圖。</p><p>
80、 3.3.3 綜合用例分析</p><p> 圖3-3 系統(tǒng)綜合用例圖</p><p> 該新聞爬蟲系統(tǒng)的綜合用例圖如圖3-3所示,普通用戶可以進(jìn)入該系統(tǒng)進(jìn)行查看各類新聞、按關(guān)鍵字,時間等多條件搜索新聞、查看新聞類別分析柱狀圖、查看新聞小類別分析柱狀圖、查看新聞數(shù)量隨月份的變化折線圖、查看在某一天新聞數(shù)量在一天中的變化折線圖以及進(jìn)行綜合分析統(tǒng)計操作;管理員用戶具有最高權(quán)限,除了可以正
81、常使用本系統(tǒng)進(jìn)行系統(tǒng)功能測試之外,還可以進(jìn)行控制系統(tǒng)數(shù)據(jù)源、觸發(fā)一次數(shù)據(jù)采集等操作。</p><p> 3.4 功能需求分析</p><p> 根據(jù)上文對于用戶用例的分析,可以總結(jié)出本系統(tǒng)的功能需求:</p><p><b> 針對管理員用戶:</b></p><p> 對爬蟲爬取的數(shù)據(jù)源進(jìn)行便捷的管理操作,包括
82、對數(shù)據(jù)源的增加和刪除以及對于數(shù)據(jù)抓取策略的修改;</p><p> 觸發(fā)一次數(shù)據(jù)采集的過程,包括指定一次手動采集的過程和觸發(fā)一次定時采集的過程以實現(xiàn)數(shù)據(jù)的實時獲取和增量獲取;</p><p> 對于數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分析;</p><p> 具備普通用戶能夠使用的所有功能,可進(jìn)入WEB頁測試本地服務(wù)器和系統(tǒng)是否運(yùn)行正常。</p>&l
83、t;p><b> 針對普通用戶:</b></p><p> 查看各類新聞:輸入關(guān)鍵字和日期進(jìn)行檢索,查看當(dāng)前類型的符合條件的新聞;</p><p> 查看新聞類別分析柱狀圖:輸入日期進(jìn)行檢索,查看當(dāng)前時間下的新聞類別分析柱狀圖;</p><p> 查看新聞小類別分析柱狀圖:輸入日期進(jìn)行檢索,可查看當(dāng)前時間下的小的新聞類別的
84、數(shù)量分析柱狀圖;</p><p> 查看新聞數(shù)量隨月份的變化折線圖:根據(jù)輸入的年份可查看當(dāng)前年份中新聞發(fā)布數(shù)量隨月份變化的折線圖;</p><p> 查看在某一天新聞數(shù)量在一天中的變化折線圖:根據(jù)輸入的時間可查看當(dāng)前日期下新聞發(fā)布數(shù)量隨時間變化的折線圖。</p><p> 3.5 性能需求分析</p><p> 本系統(tǒng)運(yùn)行在Wind
85、ows 7 Ultimate操作系統(tǒng)上,Web服務(wù)器選用Apache Tomcat 7.0版本,整個系統(tǒng)的性能指標(biāo)如下:</p><p><b> 運(yùn)行環(huán)境:</b></p><p> CPU:Intel Core (TM) 2 Duo E7200 @ 2.53GHz</p><p> 內(nèi)存:3 GB ( DDR2 667MHz / DD
86、R2 800MHz )</p><p> 帶寬:10.0M,100M網(wǎng)卡</p><p><b> 運(yùn)行參數(shù):</b></p><p> 最大網(wǎng)絡(luò)連接數(shù):65</p><p> 單一主機(jī)連接數(shù):20</p><p> 下載速度:(按照平均每個頁面包含10條數(shù)據(jù)來計算)</p>
87、<p> 最高速度:200Pages/Min,平均每分鐘抓取2000條記錄</p><p> 最低速度:50Pages/Min,平均每分鐘抓取500條記錄</p><p><b> 頁面解析速度:</b></p><p> 平均速度:1000Pages/Min</p><p> 并發(fā)解析線程數(shù):2
88、0</p><p><b> 資源使用率:</b></p><p> 下載服務(wù):CPU占用率50%,內(nèi)存占用率500MB</p><p> 解析服務(wù):CPU占用率70%,內(nèi)存占用率800MB</p><p><b> 3.6 本章小結(jié)</b></p><p> 本章
89、主要對需求分析階段所做的相關(guān)工作進(jìn)行了描述,為后期系統(tǒng)設(shè)計和開發(fā)工作做準(zhǔn)備。首先從技術(shù)可行性、操作可行性和經(jīng)濟(jì)可行性三個方面對系統(tǒng)可行性進(jìn)行了評估,隨后對系統(tǒng)的用戶對象和用戶用況從管理員用戶和普通用戶兩個角度進(jìn)行了詳細(xì)的分析,并分別總結(jié)出了相應(yīng)的功能需求,最后對系統(tǒng)的性能需求進(jìn)行了簡要分析。</p><p><b> 4 系統(tǒng)總體設(shè)計</b></p><p> 系
90、統(tǒng)需求分析階段主要提出了系統(tǒng)需要做什么,系統(tǒng)設(shè)計階段需要解決的問題就是系統(tǒng)需要怎么做。系統(tǒng)設(shè)計階段的主要參考依據(jù)是需求分析階段得出的相關(guān)結(jié)果,據(jù)此進(jìn)行系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計和功能模塊設(shè)計,本階段的工作是對上一階段分析結(jié)果的進(jìn)一步具體化。</p><p> 4.1 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計</p><p> 良好的數(shù)據(jù)庫結(jié)構(gòu)對于保障一個應(yīng)用程序始終運(yùn)行在高性能狀態(tài)具有非常重要的意義。數(shù)據(jù)庫結(jié)構(gòu)如果沒
91、有設(shè)計好將會給以后的工作帶來很多麻煩,一方面是性能問題,另一方面是維護(hù)問題。過多的重復(fù)性數(shù)據(jù)會嚴(yán)重影響系統(tǒng)的執(zhí)行性能,當(dāng)這些數(shù)據(jù)的一個實例發(fā)生改變時,其他數(shù)據(jù)也都要進(jìn)行相應(yīng)的改變。</p><p> 本系統(tǒng)使用SQL Server 2005作為數(shù)據(jù)庫管理工具,SQL Server 2005是一個具備完整的Web支持的數(shù)據(jù)庫產(chǎn)品,提供了以Web標(biāo)準(zhǔn)為基礎(chǔ)的擴(kuò)展數(shù)據(jù)庫編程功能。在數(shù)據(jù)訪問層,采用JDBC直接訪問數(shù)據(jù)
92、庫的方式,通過SQL語句操作數(shù)據(jù)庫,簡單易用。</p><p> 根據(jù)本系統(tǒng)的實際需求,數(shù)據(jù)庫中需要具備的基本表有三個:</p><p> 新聞信息列表dbo.news(如表4-1所示)</p><p> 表4-1 帖子信息列表</p><p> url信息列表dbo.newsurl(如表4-2所示)</p><p
93、> 表4-2 數(shù)據(jù)源信息列表</p><p> 新聞類別列表dbo.newstype(如表4-3所示)</p><p> 表4-3情感傾向標(biāo)注列表</p><p> 這三個表之間的實體-關(guān)系圖如圖4-1所示:</p><p> 圖4-1 數(shù)據(jù)庫實體-關(guān)系圖</p><p> 4.2 系統(tǒng)功能模塊設(shè)計&
94、lt;/p><p> 整個新聞爬蟲系統(tǒng)應(yīng)該包括四部分的功能模塊:爬取類別的選擇、數(shù)據(jù)獲取模塊、數(shù)據(jù)存入模塊、數(shù)據(jù)分析以及數(shù)據(jù)可視化模塊。其總體的工程如圖4-2所示:</p><p> 圖4-2 系統(tǒng)主要工作流程</p><p> 4.2.1 數(shù)據(jù)獲取功能模塊</p><p> 在該新聞爬蟲系統(tǒng)中,數(shù)據(jù)的獲取主要依靠網(wǎng)絡(luò)爬蟲來實現(xiàn)。爬蟲程序
95、在針對系統(tǒng)指定的網(wǎng)站進(jìn)行爬行時,會對網(wǎng)頁中的相關(guān)元數(shù)據(jù)進(jìn)行抽取并保存在本地數(shù)據(jù)庫中。</p><p> 爬蟲程序主要由鏈接過濾子模塊、頁面解析子模塊、爬行控制子模塊以及數(shù)據(jù)存儲子模塊構(gòu)成,其模塊結(jié)構(gòu)如圖4-3所示:</p><p> 圖4-3 數(shù)據(jù)獲取功能模塊結(jié)構(gòu)圖</p><p><b> 鏈接過濾子模塊</b></p>
96、<p> 在爬蟲程序的爬行過程中,需要不斷地向待抓取的URL隊列中添加新的URL,而爬蟲作為計算機(jī)程序具有機(jī)械執(zhí)行的特性,無法智能判斷出某一個URL是否需要進(jìn)行解析,這就要求在爬行過程中需要為爬蟲定義一個鏈接過濾器,只有符合某些條件的URL才能被過濾器所識別,其余不符合條件的URL將會被鏈接過濾器過濾掉,不會加入到待抓取的爬行隊列中去,同時對于符合條件的URL也要判斷該URL是否被爬取過,如果已被爬過則舍棄。</p&g
97、t;<p> 在爬蟲中采用鏈接過濾器進(jìn)行URL過濾是很有必要的。一方面,能夠被過濾器識別的URL符合用戶預(yù)定義的過濾規(guī)則,這些URL全部都是用戶所期望獲取的數(shù)據(jù)來源,數(shù)據(jù)抓取的準(zhǔn)確性得到很好的保證;另一方面,由于大量不符合條件的URL都被過濾掉了,爬行隊列中僅僅加入符合條件的URL,大大節(jié)省了寶貴的內(nèi)存空間。</p><p> 鏈接過濾子模塊的工作方式如圖4-4所示:</p>&l
98、t;p> 圖4-4 鏈接過濾子模塊</p><p><b> 頁面解析子模塊</b></p><p> 爬行隊列在爬蟲程序中的地位是非常重要的。在爬蟲程序的工作過程中,需要不斷地提取符合鏈接過濾器的URL加入到爬蟲隊列中去,這些URL所指向的HTML頁面可以分為兩類:一類是可以直接從中獲取元數(shù)據(jù)的HTML頁面,另一類是包含更多符合鏈接過濾器的URL但是不能
99、抽取元數(shù)據(jù)的HTML頁面。對于第一類HTML頁面,直接利用HTML解析工具對其進(jìn)行解析并進(jìn)行元數(shù)據(jù)抽??;對于第二類HTML頁面,則需要對其進(jìn)行URL抽取而非元數(shù)據(jù)抽取,將HTML中復(fù)合鏈接過濾器的URL全部提取出來進(jìn)行重爬判斷并將符合條件的URL加入到爬行隊列中去。</p><p> 頁面解析子模塊的工作方式如圖4-5所示:</p><p> 圖4-5 頁面解析子模塊</p>
100、;<p><b> 爬行控制子模塊</b></p><p> 爬行控制模塊是整個爬蟲程序的核心,它控制著整個爬蟲的抓取策略(寬度優(yōu)先或者深度優(yōu)先)以及停止條件。爬行控制子模塊的工作流程如圖4-6所示:</p><p> 圖4-6 爬行控制子模塊</p><p><b> 數(shù)據(jù)存儲子模塊</b><
101、/p><p> 在每次進(jìn)行完HTML頁面的信息抽取之后,都要將所有獲取到的元數(shù)據(jù)寫入到數(shù)據(jù)庫中去,另外還需要將本次抓取的URL也寫入數(shù)據(jù)庫中。數(shù)據(jù)存儲子模塊的工作流程如圖4-7所示:</p><p> 圖4-7 數(shù)據(jù)存儲子模塊</p><p> 4.2.2 數(shù)據(jù)可視化功能模塊</p><p> 圖4-8 數(shù)據(jù)可視化功能結(jié)構(gòu)圖</p&
102、gt;<p> 系統(tǒng)可視化功能模塊的主要功能結(jié)構(gòu)如圖4-8所示,通過ExtJS結(jié)合Google Visualization API進(jìn)行構(gòu)建,其主要功能包括:</p><p> 顯示歡迎頁:用戶進(jìn)入本系統(tǒng)后顯示歡迎信息并對系統(tǒng)主要功能進(jìn)展示;</p><p> 查看各類新聞:查看當(dāng)前類型的新聞;</p><p> 按關(guān)鍵字,時間等多條件搜索新
103、聞:輸入關(guān)鍵字和日期進(jìn)行檢索,查看當(dāng)前符合條件的新聞;</p><p> 查看新聞類別分析柱狀圖:輸入日期進(jìn)行檢索,可查看當(dāng)前日期下的新聞類別的分析柱狀圖,在沒有日期限制的條件下就顯示全部新聞的類別分析柱狀圖;</p><p> 查看新聞小類別分析柱狀圖:輸入日期進(jìn)行檢索,可查看當(dāng)前日期下的新聞小類別的分析柱狀圖,在沒有日期限制的條件下就顯示全部新聞的小類別分析柱狀圖;</p&g
104、t;<p> 查看新聞數(shù)量隨月份的變化折線圖:輸入日期進(jìn)行檢索,可查看對于當(dāng)前年份下的新聞數(shù)量隨月份變化的折線圖;</p><p> 查看新聞數(shù)量在一天中的變化折線圖:輸入日期進(jìn)行檢索,可查看對于當(dāng)前日期下的新聞數(shù)量隨時間變化的折線圖;</p><p><b> 4.3 本章小結(jié)</b></p><p> 本章節(jié)對新聞爬蟲
105、系統(tǒng)進(jìn)行了數(shù)據(jù)庫結(jié)構(gòu)的總體設(shè)計以及系統(tǒng)功能模塊的總體設(shè)計,并對數(shù)據(jù)獲取功能模塊的子模塊以及數(shù)據(jù)可視化功能模塊的功能結(jié)構(gòu)做出了明確的劃分,為系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)階段的工作備好條件。</p><p> 5 系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)</p><p> 本章節(jié)將圍繞新聞爬蟲系統(tǒng)的功能模塊詳細(xì)設(shè)計和技術(shù)實現(xiàn)展開詳細(xì)說明,針對系統(tǒng)總體設(shè)計進(jìn)行細(xì)化和擴(kuò)充,詳細(xì)地設(shè)計每個模塊實現(xiàn)算法以及所需的局部結(jié)構(gòu),最后將
106、所有的設(shè)計方案進(jìn)行技術(shù)實現(xiàn)。</p><p> 5.1 數(shù)據(jù)獲取模塊</p><p> 數(shù)據(jù)獲取模塊主要利用Java語言結(jié)合HTTPClient開源工具編寫了一個針對新聞的可擴(kuò)展的網(wǎng)絡(luò)爬蟲,該爬蟲程序能夠按照廣度優(yōu)先的爬行策略對新聞數(shù)據(jù)進(jìn)行全面的定向抓取以及周期性的增量抓取。</p><p> 在爬蟲程序執(zhí)行數(shù)據(jù)抓取的過程中,采用HTMLParser對獲取到的
107、新聞信息進(jìn)行元數(shù)據(jù)抽取,將新聞的URL、標(biāo)題、內(nèi)容、發(fā)布方、發(fā)布時間、新聞類別等元數(shù)據(jù)以及新聞的圖片存入SQL Server數(shù)據(jù)庫中。</p><p> 5.1.1 爬蟲程序初始界面</p><p> 爬蟲程序的初始界面如圖5-1所示。本程序利用SWING實現(xiàn),界面上方是功能選區(qū),管理員用戶可以指定爬行操作的數(shù)據(jù)源,進(jìn)行數(shù)據(jù)抓取過程的相關(guān)操作。界面下方的空白區(qū)域使用JTextArea實
108、現(xiàn),其作用是截獲系統(tǒng)的控制臺輸出并進(jìn)行顯示,用于指示當(dāng)前的爬行動態(tài)信息。界面底部使用JProgressBar實現(xiàn)了一個爬行進(jìn)度指示條,用于指示當(dāng)前爬行操作的執(zhí)行進(jìn)度。</p><p> 圖5-1 爬蟲程序初始界面</p><p> 5.1.2 “建立連接”操作</p><p> 用戶點擊“建立連接”按鈕可以獲取到數(shù)據(jù)庫的連接,通過點擊“測試連接”按鈕可以連接到
109、測試數(shù)據(jù)庫進(jìn)行各類測試操作而不影響主數(shù)據(jù)庫的數(shù)據(jù)。用戶在點擊“建立連接”按鈕后,在控制臺進(jìn)行當(dāng)前狀態(tài)輸出,系統(tǒng)狀態(tài)由NotLinked變?yōu)長inked。操作效果如圖5-2所示:</p><p> 圖5-2 “建立連接”操作</p><p> 5.1.3 “開始爬行”操作</p><p> 用戶在取得到數(shù)據(jù)庫的連接之后,可以通過選擇新聞類別(可細(xì)分為china、
110、world、society、mil)開始抓取數(shù)據(jù),數(shù)據(jù)來源和爬行限制選項可在界面上部進(jìn)行控制。例如我們選擇對于china對應(yīng)的國內(nèi)新聞進(jìn)行爬取則程序會對國內(nèi)新聞開始進(jìn)行抓?。ㄈ鐖D5-4所示)并將帖子信息寫入到數(shù)據(jù)庫中(如圖5-5所示)。</p><p> 圖5-3 需要抓取的新聞列表</p><p> 圖5-4 正在進(jìn)行抓取</p><p> 圖5-5 新聞信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 主題網(wǎng)絡(luò)爬蟲的設(shè)計與實現(xiàn)---畢業(yè)論文
- 新聞發(fā)布系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)設(shè)計與實現(xiàn)畢業(yè)論文
- 畢業(yè)論文——校園新聞發(fā)布系統(tǒng)的設(shè)計與實現(xiàn)
- 網(wǎng)絡(luò)爬蟲的設(shè)計與實現(xiàn)畢業(yè)論文(含外文翻譯)
- 畢業(yè)論文(設(shè)計)面向web service的網(wǎng)絡(luò)爬蟲設(shè)計與實現(xiàn)
- 網(wǎng)絡(luò)爬蟲的設(shè)計與實現(xiàn)畢業(yè)論文(含外文翻譯)
- 新聞發(fā)布系統(tǒng)的設(shè)計與實現(xiàn)──新聞管理、類目管理【畢業(yè)論文】
- 聚焦爬蟲系統(tǒng)的設(shè)計與實現(xiàn) —— 頁面解析與評價器模塊---畢業(yè)論文
- 聚焦爬蟲系統(tǒng)的設(shè)計與實現(xiàn) —— 頁面解析與評價器模塊---畢業(yè)論文
- 基于web新聞發(fā)布系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文
- 結(jié)業(yè)畢業(yè)論文新聞發(fā)布系統(tǒng)設(shè)計實現(xiàn)分析方案結(jié)業(yè)畢業(yè)論文
- 畢業(yè)論文---基于jsp綜合新聞發(fā)布系統(tǒng)設(shè)計與實現(xiàn)
- 畢業(yè)論文--基于mvc模式的新聞發(fā)布系統(tǒng)的設(shè)計與實現(xiàn)
- 研究面向服務(wù)的網(wǎng)絡(luò)爬蟲系統(tǒng)——網(wǎng)絡(luò)爬蟲系統(tǒng)的設(shè)計和構(gòu)建---畢業(yè)論文
- 研究面向服務(wù)的網(wǎng)絡(luò)爬蟲系統(tǒng)——網(wǎng)絡(luò)爬蟲系統(tǒng)的設(shè)計和構(gòu)建---畢業(yè)論文
- 在線畢業(yè)論文提交系統(tǒng)的設(shè)計與實現(xiàn)——畢業(yè)論文
- 新聞發(fā)布系統(tǒng)的設(shè)計與實現(xiàn)——新聞搜索評論功能和評論管理功能的設(shè)計與實現(xiàn)【畢業(yè)論文】
- 畢業(yè)論文---基于php+mysql的新聞發(fā)布系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)設(shè)計(論文)新聞發(fā)布系統(tǒng)的設(shè)計與實現(xiàn)
評論
0/150
提交評論