版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 摘要</b></p><p> 隨著網(wǎng)絡在世界范圍的飛速發(fā)展,互聯(lián)網(wǎng)作為最具潛力與活力的媒體已經(jīng)被公認是繼報紙,廣播,電視之后的“第四媒體”,成為反映社會新聞熱點的重要載體。為了及時了解網(wǎng)絡新聞熱點,相關機構引入了新聞熱點分析系統(tǒng)。本文設計的新聞爬蟲系統(tǒng)是新聞熱點分析系統(tǒng)的數(shù)據(jù)源,負責新聞信息的采集。</p><p> 本文借助于爬蟲
2、領域的相關技術與工具,結合新聞熱點分析系統(tǒng)的需求從原理或工作流程上詳細論述了爬蟲系統(tǒng)中核心模塊的具體實現(xiàn)。</p><p> 本文所描述的新聞爬蟲系統(tǒng)其數(shù)據(jù)來源主要是新浪新聞,首先利用爬蟲工具將新聞數(shù)據(jù)獲取到本地數(shù)據(jù)庫中,然后將新聞信息以及新聞分析的結果將在前臺網(wǎng)頁中進行可視化輸出。本文主要進行了以下幾個方面的工作:
3、 </p><p> 1)利用Java語言結合HTTPClient開源工具編寫了一個針對新浪新聞的可擴展的網(wǎng)絡爬蟲,該爬蟲程序能夠按照廣度優(yōu)先的爬行策略對新聞數(shù)據(jù)(包括圖片信息)進行全面的定向抓取以及周期性的增量抓??;</p><p> 2)采用HTMLParser對獲取到的新聞信息進行元數(shù)據(jù)抽取,將新聞的編號、標題、內(nèi)容、發(fā)布方、發(fā)布時間等元數(shù)據(jù)以及新聞圖片等元數(shù)據(jù)解
4、析出來并存入SQL Server數(shù)據(jù)庫中;</p><p> 3)前端界面利用開源AJAX框架ExtJS結合Servlet進行實現(xiàn),兼顧用戶交互方式的多樣性以及系統(tǒng)的跨瀏覽器兼容性。</p><p> 通過使用該新聞爬取系統(tǒng),用戶能夠?qū)崟r的更新新聞信息,及時、全面、準確地掌握新聞熱點動態(tài),提高對于重大突發(fā)事件的處理能力,對于更及時,全面的了解各地的實時信息具有重要意義。</p&g
5、t;<p> 關鍵詞:新聞熱點,網(wǎng)絡爬蟲,元數(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)外相關研究現(xiàn)狀3</p><p> 1.3 論文主要內(nèi)容和章節(jié)安排4</p><p> 2 系
17、統(tǒng)開發(fā)知識準備6</p><p> 2.2 J2EE技術簡介7</p><p> 2.3 SQL Server 2005簡介8</p><p> 2.4 ExtJS簡介10</p><p> 2.5開源工具簡介12</p><p> 2.5本章小結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、章小結21</p><p> 4 系統(tǒng)總體設計23</p><p> 4.1 數(shù)據(jù)庫結構設計23</p><p> 4.2 系統(tǒng)功能模塊設計25</p><p> 4.3 本章小結31</p><p> 5 系統(tǒng)詳細設計與實現(xiàn)32</p><p> 5.1 數(shù)據(jù)獲取模塊
20、32</p><p> 5.2 數(shù)據(jù)可視化模塊36</p><p> 5.3 本章小結43</p><p> 6 系統(tǒng)測試與發(fā)布44</p><p> 6.1 軟件測試的目標和方法44</p><p> 6.2 測試用例45</p><p> 6.3 本章小結49<
21、/p><p><b> 7 總結50</b></p><p><b> 參考文獻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)容組成以及論文的組織結構。</p><p> 1.1 開發(fā)背景及目的</p><p> 隨著互聯(lián)網(wǎng)技術的發(fā)展與應用的普及,網(wǎng)絡作為信息的載體,已經(jīng)成為社會大眾
23、參與社會生活的一種重要信息渠道。由于互聯(lián)網(wǎng)是開放的,每個人都可以在網(wǎng)絡上發(fā)表信息,內(nèi)容涉及各個方面。小到心情日志,大到國家大事?;ヂ?lián)網(wǎng)已成為思想文化信息的集散地,并具有傳統(tǒng)媒體無法相比的優(yōu)勢:便捷性,虛擬性,互動性,多元性。</p><p> 網(wǎng)絡新聞熱點通常形成迅速,多是人們對于日常生活中的各種問題發(fā)表的各種意見,評論,態(tài)度,情緒等,隨著事件的發(fā)展而變化,是反映社會熱點的重要載體之一。</p>
24、<p> 網(wǎng)絡爬蟲是一種按照一定上網(wǎng)規(guī)則,自動的抓取萬維網(wǎng)信息的程序或腳本。網(wǎng)絡檢索功能起于互聯(lián)網(wǎng)內(nèi)容爆炸性發(fā)展所帶來的對內(nèi)容檢索的需求。搜素引擎不斷發(fā)展,人們的需求也不斷提高,網(wǎng)絡信息搜索已經(jīng)成為人們每天都有進行的內(nèi)容。如何使搜索引擎能夠時刻滿足人們的需求?最初的檢索功能通過索引站的方式實現(xiàn),從而有了網(wǎng)絡機器人。本課題來源于新聞爬蟲系統(tǒng)項目的建設,旨在為相關機構提供及時的網(wǎng)絡信息服務。這些服務與現(xiàn)有的搜索引擎提供的服務不同
25、,其重要特征主要體現(xiàn)在:及時性,專用性,人性化。</p><p><b> 及時性</b></p><p> 新聞爬蟲系統(tǒng)通過爬蟲技術自動爬取新聞信息,定期對相應類型的新聞的地址進行掃描,如若該新聞并未被爬取過則對其進行自動爬取。讓系統(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)采用手動爬取與增量爬取相結合的方式。有針對性的采集需要的幾個類別的新聞信息,并對信息進行抽取,去噪,結構化處理,為后續(xù)專用分析創(chuàng)造條件。在數(shù)據(jù)分析與數(shù)據(jù)展示方面,系統(tǒng)通過對得到的信息進行深入的分析,將分析結果進行多維度的展現(xiàn)。</p><p><b> 人性化</b>&
27、lt;/p><p> 新聞爬蟲系統(tǒng)的人性化主要體現(xiàn)在數(shù)據(jù)結果的展示上。 用戶可以隨時查看任意一個時間的新聞分析結果,而且該系統(tǒng)由于是基于多線程的程序完成任務的效率高。所以不管實在界面上還是在效率上都非常的人性化。</p><p> 新聞爬蟲系統(tǒng)項目建設意義重大。一方面,新聞爬蟲系統(tǒng)提供了大量的分析素材,方便全面的了解大眾網(wǎng)絡新聞的熱點。另一方面,原來的新聞信息收集工作主要依靠人工完成,工作
28、量巨大,覆蓋面小,不僅費時費力而且還不免出現(xiàn)人為疏漏的情況,這種局面亟待通過技術手段提高工作效率。</p><p> 本文完成的是新聞爬蟲系統(tǒng)的設計與實現(xiàn),該爬蟲系統(tǒng)為新聞分析系統(tǒng)提供數(shù)據(jù)源,完成新聞信息的搜集。因此可以說爬蟲系統(tǒng)是整個分析系統(tǒng)的基礎,并且爬蟲系統(tǒng)輸出結果的好壞直接影響著系統(tǒng)結果的展現(xiàn)。 </p><p> 1.2 國內(nèi)外相關研究現(xiàn)狀</p><p&
29、gt; 1.2.1 網(wǎng)絡爬蟲</p><p> 從搜索對象上來分類,主流的的爬蟲技術包括以下兩種:</p><p> 第一種是基于鏈接分析的搜索。上世紀九十年代,國外的搜索引擎開發(fā)者已經(jīng)開始以社會網(wǎng)絡工作為模型,對萬維網(wǎng)進行模擬。專家們通過社會間人與人的關系網(wǎng),設計研發(fā)出了頁面間的超鏈接關系網(wǎng)絡。同時他們還驚奇的發(fā)現(xiàn),相似度最高的在傳統(tǒng)引文方面。這樣通過對照就可以分析得出結論,從關系
30、網(wǎng)絡的角度入手,就能將互聯(lián)網(wǎng)上大量的網(wǎng)頁進行分類。早在2002年,歐美地區(qū)便出現(xiàn)了這種最原始的基于鏈接的搜索系統(tǒng)。</p><p> 第二種是基于內(nèi)容分析的搜索。相對于基于鏈接分析的搜索方式,這是搜索技術的一個突破性進展,他們采取了一種新的思維方式,建立一個針對主題的詞庫。當用戶在專業(yè)領域進行搜索時,可以將詞庫和爬蟲結合起來進行檢索。由于搜索角度的轉(zhuǎn)變,這種新的技術逐漸開始被人們所關注。在上世紀九十年代,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> 時至今日,聚焦爬蟲技術取得了長足的發(fā)展和進步,國外典型的系統(tǒng)包括CORA、IBM Focused Crawler等。CORA 是由美國卡內(nèi)基梅隆大學的A.K.McCallum和M.Nigam
32、等人于1999年針對計算機科學設計的一個主題型搜索引擎。CORA采用機械認知的方式,其主要針對的對象是與計算機主題相關聯(lián)的內(nèi)容,通過隱性馬爾夫的原理對用戶需要的內(nèi)容進行分類。雖然CORA分析地址和主題的能力還很不足,同時也不具備對網(wǎng)頁進行分析的能力,但是這仍然無法抹殺它在自動搜集資源方面取得的重大成就。 </p><p> S.Chakrabarti在本世紀初提出了IBM Focused Cra
33、wler,這是一種全新的爬行系統(tǒng)。從現(xiàn)在的技術來看,當時的IBM Focused Crawler采取了全新雙模塊系統(tǒng),即分類器和選擇器。分類器主要用于計算相關度,而選擇器用來確定主要頁面。S.Chakrabarti在隨后的開發(fā)過程中對整個系統(tǒng)進行了進一步的完善,使得該系統(tǒng)在準確度和相關度方面有了大幅度的提升[2]。</p><p> 美國人Diligenti采取建立上下文圖的方式設計出了聚焦爬蟲,他們將其命名為
34、Context Graphs Focused Crawler。這種通過學習網(wǎng)頁引用關系的方法后來被證明效率并不高,但在當時也是重要的創(chuàng)新手段。系統(tǒng)會利用反向鏈接服務找到指向該頁面的網(wǎng)頁,在這兩層網(wǎng)頁之間建立引用關系,由此建立聚焦爬蟲的爬行路徑。通過用戶搜索參數(shù)的改變,每一個頁面都會建立一個對應的引用關系,最后將他們進行合并。在這個過程中,分類器會確定他們的層級關系,確定之后,頁面的鏈接便會加入隊列,由此提取到所有需要進行抓取的網(wǎng)頁[3]
35、。</p><p> 對于基于內(nèi)容分析的搜索,國人也做出了很大貢獻。張福炎教授設計出了IDGS(Internet Data Gather System)系統(tǒng),可以對萬維網(wǎng)上的中英文內(nèi)容進行搜索,大大的填補了中文方面的空白。IDGS 能夠在萬維網(wǎng)上對信息進行自動查詢,采用向量空間模型技術對內(nèi)容進行檢索,同時利用權重評價技術來進行統(tǒng)計。在該系統(tǒng)中由模式匹配模塊計算相關度,采取漫游模型來進行后期的持續(xù)檢索。該系統(tǒng)的最
36、大優(yōu)點是準確度高,其代價是犧牲了覆蓋度,搜索的深度非常有限[4]。</p><p> 1.3 論文主要內(nèi)容和章節(jié)安排</p><p> 本文對于新聞爬蟲系統(tǒng)的設計與實現(xiàn)過程作出了詳細介紹,該系統(tǒng)的數(shù)據(jù)來源主要是網(wǎng)絡網(wǎng)頁新聞。本系統(tǒng)的運行流程大致如下:首先利用爬蟲工具將新聞數(shù)據(jù)獲取到本地數(shù)據(jù)庫中,之后對其進行數(shù)據(jù)分析,最后將新聞內(nèi)容信息以及分析結果在前臺網(wǎng)頁中進行可視化輸出。</p
37、><p> 為緒論,主要闡明了該課題的研究背景及其研究意義,簡要說明了國內(nèi)外對于爬蟲系統(tǒng)的研究現(xiàn)狀,并介紹了本論文的主要內(nèi)容組成以及論文的組織結構。</p><p> 為系統(tǒng)開發(fā)知識準備,簡要介紹了進行本次新聞爬蟲系統(tǒng)開發(fā)所需要的相關理論和技術,主要包括爬蟲技術的知識理論和J2EE技術、SQL Server 2005數(shù)據(jù)庫管理系統(tǒng)以及ExtJS框架等相關知識,并對系統(tǒng)開發(fā)過程中用到的一些關
38、鍵開源工具做出了簡要說明。</p><p> 對本系統(tǒng)進行了需求分析,首先從技術可行性、操作可行性和經(jīng)濟可行性三個方面對系統(tǒng)可行性進行了評估,隨后對系統(tǒng)的用戶對象和用戶用況從管理員用戶和普通用戶兩個角度進行了詳細的分析,并分別總結出了相應的功能需求,最后對系統(tǒng)的性能需求進行了簡要分析。</p><p> 對本系統(tǒng)進行了總體設計,包括數(shù)據(jù)庫結構的總體設計以及系統(tǒng)功能模塊的總體設計,并對數(shù)
39、據(jù)獲取功能模塊的子模塊以及數(shù)據(jù)可視化功能模塊的功能結構做出了明確的劃分,為系統(tǒng)詳細設計與實現(xiàn)階段的工作備好條件。</p><p> 對本系統(tǒng)的詳細設計和實現(xiàn)過程做出了說明,進行了功能模塊的詳細設計并完成了系統(tǒng)的開發(fā)實現(xiàn)工作,對于數(shù)據(jù)獲取模塊以及數(shù)據(jù)可視化模塊進行了詳細的設計實現(xiàn)和功能說明。</p><p> 進行了系統(tǒng)測試和發(fā)布工作,首先從理論上對軟件測試的目標和方法進行了簡要介紹,之
40、后設計了多個測試用例對系統(tǒng)的相關功能模塊進行了詳細的測試并對測試結果進行了分析,最后將本系統(tǒng)通過TOMCAT部署到了PC服務器上,完成了系統(tǒng)發(fā)布的過程。 </p><p> 對于本次系統(tǒng)設計開發(fā)過程進行了歸納和總結,闡述了本次系統(tǒng)開發(fā)的意義并分析了下一步需要進行的工作,最后對網(wǎng)絡輿情分析系統(tǒng)的發(fā)展方向進行了展望。</p><p> 2 系統(tǒng)開發(fā)知識準備</p><
41、;p> 本章簡要介紹了進行本次新聞爬蟲系統(tǒng)開發(fā)所需要的相關理論和技術,這些關鍵技術的學習和掌握為接下來的系統(tǒng)分析及設計實現(xiàn)提供了堅實的理論基礎。</p><p> 2.1 網(wǎng)絡爬蟲的相關知識與理論</p><p> 2.1.1 網(wǎng)絡爬蟲的定義</p><p> 網(wǎng)絡爬蟲是一個自動提取網(wǎng)頁的程序,它為搜索引擎從WEB上下載網(wǎng)頁,是搜索引擎的重要組成部分。
42、通用網(wǎng)絡爬蟲從一個或幾個初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL列表;在抓取網(wǎng)頁的過程中不斷從當前網(wǎng)頁上抽取新的URL放入到待爬行隊列,直到滿足系統(tǒng)的停止條件。</p><p> 2.1.2 頁面搜索策略介紹</p><p> 網(wǎng)頁的爬取策略可分為深度優(yōu)先,廣度優(yōu)先和最佳優(yōu)先三種。深度優(yōu)先在很多時候會導致爬蟲的陷入問題,目前常見的是廣度優(yōu)先和最佳優(yōu)先方法。</p>&
43、lt;p> 廣度優(yōu)先策略是指在爬取過程中,在完成當前層次的搜索后,才進行下一層次的搜索。在目前為覆蓋盡可能多的網(wǎng)頁,一般使用廣度優(yōu)先搜索算法。也有很多研究將廣度優(yōu)先算法應用于聚焦爬蟲上。其基本思想是認為與初始URL在一定鏈接距離內(nèi)的網(wǎng)頁具有主題相關性的概率很大。</p><p> 最佳優(yōu)先策略是按照一定的網(wǎng)頁分析算法,預測候選URL與目標網(wǎng)頁的相似度,或與主題的相關性,并選評價最好的一個或幾個URL進行
44、抓取。</p><p> 它只訪問經(jīng)過網(wǎng)頁任意算法預測為“有用”的網(wǎng)頁。存在的一個問題是,在爬蟲抓取路徑上的很多相關網(wǎng)頁可能被忽略。因為最佳優(yōu)先策略是一種局部最優(yōu)搜索算法。因此需要在應用中對最佳優(yōu)先策略進行改進,以跳出局部最優(yōu)點。</p><p> 2.2 J2EE技術簡介</p><p> J2EE指的是Java2平臺企業(yè)版(Java 2 Platform
45、, Enterprise Edition)。J2EE的核心是一組技術規(guī)范與指南,其中所包含的各類組件、服務架構及技術層次,均有共同的標準及規(guī)格,讓各種依循J2EE架構的不同平臺之間存在良好的兼容性,一方面解決了過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容的問題,另一方面使得企業(yè)擺脫了內(nèi)部和外部難以互通的窘境。</p><p> J2EE組件和“標準的”Java類的不同點在于:它被裝配在一個J2EE應用中,具有固定
46、的格式并遵守J2EE規(guī)范,由J2EE服務器對其進行管理。J2EE規(guī)范是這樣定義J2EE組件的:客戶端應用程序和Applet是運行在客戶端的組件;Java Servlet和Java Server Pages (JSP) 是運行在服務器端的Web組件;Enterprise Java Bean (EJB )是運行在服務器端的業(yè)務組件。</p><p> J2EE體系結構提供中間層集成框架用來滿足無需太多費用而又需要高
47、可用性、高可靠性以及可擴展性的應用的需求。通過提供統(tǒng)一的開發(fā)平臺,J2EE降低了開發(fā)多層應用的費用和復雜性,同時提供對現(xiàn)有應用程序集成的強有力支持,極大地提高了系統(tǒng)的運行效率和安全性。</p><p> J2EE使用多層的分布式應用模型,應用邏輯按功能劃分為組件,各個應用組件根據(jù)他們所在的層分布在不同的機器上。事實上,SUN設計J2EE的初衷正是為了解決兩層模式(Client/Server)的弊端。傳統(tǒng)的客戶端
48、往往承擔了太多的功能,導致客戶端比較臃腫,升級很不方便。而J2EE中使用的多層軟件模型將原來簡單的模型切成幾層解耦的獨立功能層,每一層完成特定的任務,方便升級系統(tǒng)并更改應用的邏輯[5]。典型的J2EE應用體系結構如圖2-1所示:</p><p> 圖2-1 J2EE體系結構圖</p><p> 總體來說,使用J2EE技術開發(fā)Web事務系統(tǒng)有以下優(yōu)點:第一,開發(fā)高效,J2EE有完善的開源
49、社區(qū)支持,像Spring,Struts這些框架可以大大縮短開發(fā)周期;第二,支持不同的操作系統(tǒng)環(huán)境,因為Java天生具有“一次編譯,隨處運行”的特點,基于J2EE開發(fā)的應用程序不依賴特定的操作系統(tǒng)、硬件等,也就具有了開發(fā)一次就可以在各個平臺部署的特點;第三,穩(wěn)定的高可用性,得益于從Java繼承而來的跨平臺特性,J2EE系統(tǒng)部署到可靠的操作環(huán)境中,一些對系統(tǒng)魯棒性要求很高的大型商務系統(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ù)庫引擎為關系型數(shù)據(jù)和結構化數(shù)據(jù)提供了更安全可靠的存儲功能,使得用戶可以構建和管理用于業(yè)務的高可用和高性能的數(shù)據(jù)
51、應用程序。</p><p> SQL Server是由Microsoft開發(fā)和推廣的關系數(shù)據(jù)庫管理系統(tǒng)(DBMS),它最初是由Microsoft、Sybase、Ashton-Tate三家公司共同開發(fā)的,并于1988年推出了第一個在OS/2版本上運行的SQL Server系統(tǒng)。1992年Sybase和Microsoft這兩家公司將SQL Server移植到了Windows NT操作系統(tǒng)上,后來Microsoft致
52、力于Windows NT平臺的SQL Server的開發(fā),而Sybase則專注于SQL Server在UNIX上的應用[6]。</p><p> 近年來在Microsoft SQL Server的發(fā)展歷程中不斷更新版本:1996年發(fā)布的SQL Server6.5版本,該版本具備了市場所需的速度快、功能強、易使用和價格低等有點;1998年推出了SQL Server7.0版本,該版本再一次對核心數(shù)據(jù)庫引擎進行了重大
53、改寫,在操作上更加簡單、易用,因此獲得了良好的聲譽;2000年,發(fā)布了SQL Server 2000版本,該版本在可擴縮性和可靠性上有了很大的改進,成為企業(yè)級數(shù)據(jù)庫市場中重要的一員;2005年,發(fā)布了SQL Server 2005版本,該版本擴展了SQL Server 2000的性能,如在可靠性、可用性、可編程性和易用性等方面做出了重大改進。SQL Server 2005引入了.NET Framework,允許構建.NET SQL Se
54、rver專有對象,從而使SQL Server數(shù)據(jù)庫具有靈活的功能。</p><p> SQL Server 2005的常見版本包括如下四種:</p><p> 1)個人版(Personal Edition):用于單機系統(tǒng)或客戶機;</p><p> 標準版(Standard Edition):用于小型的工作組或部門;</p><p>
55、 3)企業(yè)版(Enterprise Edition):支持所有的SQL Server 2005特性,可作為大型Web站點、企業(yè)OLTP(聯(lián)機事務處理)以及數(shù)據(jù)倉庫系統(tǒng)等的產(chǎn)品數(shù)據(jù)庫服務器;</p><p> 4)開發(fā)者版(Developer Edition):用于程序員開發(fā)應用程序,這些程序需要SQL Server 2005作為數(shù)據(jù)庫存儲設備[7]。</p><p> 2.4 ExtJ
56、S簡介</p><p> ExtJS是一個JavaScript庫,功能強大,界面美觀,可以使用AJAX, DHTML,DOM等技術來開發(fā)網(wǎng)絡應用程序。ExtJS可以用來開發(fā)富互聯(lián)網(wǎng)應用(RIA:Rich Internet Applications),主要用于創(chuàng)建前端用戶界面,是一個與后臺技術無關的前端AJAX框架。因此,可以把ExtJS用在.NET、Java以及PHP等多種開發(fā)語言中。</p>&
57、lt;p> ExtJS最開始基于YUI技術,由開發(fā)人員Jack Slocum開發(fā),通過參考Java SWING等機制來組織可視化組件,從UI界面上CSS樣式的應用,到數(shù)據(jù)解析過程中的異常處理,都可算是一款不可多得的JavaScript客戶端技術的精品。</p><p> ExtJS的組件結構如圖2-3所示:</p><p> 圖2-3 ExtJS組件結構圖</p>
58、<p> ExtJS初期僅是對Yahoo! UI的對話框擴展,后來逐漸有了自己的特色,深受技術研發(fā)人員的喜愛。發(fā)展至今,ExtJS除YUI外還支持包括jQuery、Prototype等多種JS底層庫,可以讓開發(fā)人員自由進行選擇[8]。該框架完全基于純HTML/CSS+JS技術,提供豐富的跨瀏覽器UI組件,靈活采用JSON/XML數(shù)據(jù)源開發(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應用程序需要直接通過HTTP協(xié)議來訪問網(wǎng)絡資源。雖然在 JDK的java.net包中已經(jīng)提供了訪問HTTP協(xié)議的基本功能,但是對于大部分應用程序來說,JDK庫本身提供的功能還不夠豐富和靈活。HTTPClient已經(jī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> 支持代理服務器。</b></p><p
62、> 2.4.2 HTMLParser</p><p> HTMLParser是一個利用純Java語言編寫的進行HTML解析的庫,它不依賴于其它的Java庫文件,主要用于改造或提取HTML,其特點是能夠超高速解析HTML文件,而且不會出錯。作為目前最為方便易用的進行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進行有效信息搜索;</p><p> 鏈接提取,用于自動給頁面的鏈接文本加上鏈接的標簽;</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本章小結</b></p><p> 本章簡要介紹了進
66、行本次新聞爬蟲系統(tǒng)開發(fā)所需要的相關理論和技術,主要包括網(wǎng)絡爬蟲的定義,爬取策略等理論知識,J2EE技術、SQL Server 2005數(shù)據(jù)庫管理系統(tǒng)以及ExtJS框架相關知識,并對系統(tǒng)開發(fā)過程中用到的一些關鍵開源工具做出了簡要說明,這些關鍵技術的學習和掌握為接下來的系統(tǒng)分析及設計實現(xiàn)提供了堅實的理論基礎。</p><p><b> 3 系統(tǒng)需求分析</b></p><p
67、> 需求分析階段的主要工作就是分析用戶的需求是什么,是指針對軟件所要解決的問題進行詳細的分析,明確對軟件系統(tǒng)的輸入輸出要求。本章主要從系統(tǒng)可行性、用戶對象、用戶用例、功能需求以及性能需求五個方面進行詳細的系統(tǒng)需求分析。</p><p> 3.1 系統(tǒng)可行性研究</p><p> 3.1.1 技術可行性</p><p><b> 1)軟件可行性
68、</b></p><p> 新聞爬蟲系統(tǒng)所需要的數(shù)據(jù)源可以通過編寫網(wǎng)絡爬蟲程序來實現(xiàn)定向抓取,通過定制爬行過程中的過濾條件和爬行策略,爬蟲程序所獲取的數(shù)據(jù)量和抓取的效率都能得到很好的保證。</p><p> 新聞信息的可視化模塊可以通過借助Google Visualization API動態(tài)地將新聞顯示在交互方式非常豐富的圖表上,再結合ExtJS構建一個富互聯(lián)網(wǎng)應用,整個系
69、統(tǒng)能夠提供良好的用戶體驗。</p><p><b> 硬件可行性</b></p><p> 新聞爬蟲系統(tǒng)需要進行抓取和分析的數(shù)據(jù)量非常大,這對于服務器端數(shù)據(jù)庫的承載能力要求較高,通過較長時間的測試,目前主流的服務器完全可以勝任作為輿情分析系統(tǒng)服務器的要求。</p><p> 由于該新聞爬蟲系統(tǒng)采用B/S架構方式,用戶僅需在瀏覽器端利用瀏覽
70、器進入系統(tǒng)使用相關功能即可,當前主流的個人電腦硬件配置完全滿足使用條件。</p><p> 3.1.2 操作可行性</p><p> 本系統(tǒng)在用戶界面層利用ExtJS框架結合Google Visualization API進行構建。ExtJS作為開源JavaScript框架,功能強大,界面美觀,使用AJAX技術開發(fā)RIA應用。Google Visualization API所提供的圖表
71、工具作為Flex程序,具有極為豐富的交互效果。兩者相結合開發(fā)出的前臺網(wǎng)頁,保證了良好的用戶體驗,能夠滿足用戶實際操作的需要。</p><p> 3.1.3 經(jīng)濟可行性</p><p> 經(jīng)過不斷的系統(tǒng)完善和功能增強過程,成型之后的新聞爬蟲系統(tǒng)能夠為各個行業(yè)按需提供不同的服務。例如:為政府機關、公安、廣電、教育機構提供輿情監(jiān)測服務,為上市公司、投資機構、金融監(jiān)管機構提供口碑管理服務,為各
72、類商業(yè)公司提供競爭情報管理、招投標監(jiān)測、危機公關處理、市場調(diào)研、趨勢分析以及營銷效果評估等服務。綜上所述,新聞爬蟲分析系統(tǒng)具有非常強的經(jīng)濟可行性。</p><p> 3.2 用戶對象分析</p><p> 互聯(lián)網(wǎng)定向信息采集系統(tǒng)面對的客戶是特定的專業(yè)人群和企業(yè)機構,他們關心的信息一般限于特定的主題。出于性能和成本上的考量,本系統(tǒng)不需要也不可能對整個互聯(lián)網(wǎng)來做遍歷抓取。本系統(tǒng)的用戶一般是
73、新聞熱點分析部門或是各公安部門的觀察員。一般來說,他們無法將精力全部花在瀏覽各大網(wǎng)站新聞和BBS上,但是他們的職責需要他們對網(wǎng)絡上的信息有一個把握,尤其是和其興趣點、切身利益相關的帖子和新聞。</p><p> 對于企業(yè)公關來說,信息時代的到來導致危機的信息傳播比危機本身發(fā)展要快得多,媒體的報道也很難避免。他們需要不斷的知道外屆對企業(yè)的評價,是否有競爭對手惡意中傷等,從而在第一時間作出應對措施,減少破壞性和蔓延
74、速度,以維護形象和贏得消費者的同情和理解。</p><p> 對于行政機構類用戶,他們需要對國內(nèi)重點論壇和新聞門戶網(wǎng)站,也包含國外部分敏感網(wǎng)站,特別是國外的Twitter,F(xiàn)acebook等網(wǎng)站進行一些監(jiān)控,以對一些敏感事件進行及時的發(fā)現(xiàn)、后續(xù)跟蹤,同時對于民意的聽取也很感興趣,從而做到對特殊事件的早發(fā)現(xiàn)、早預警,為及時處置奠定基礎。</p><p> 此外,還有很重要的一個方面的用戶
75、就是系統(tǒng)管理員,他們并不是新聞爬蟲系統(tǒng)的用戶,但是該管理員需要控制數(shù)據(jù)源的獲取邏輯,進行數(shù)據(jù)的分析,并將分析結果進行展示。</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ù)源進行控制:包括對爬蟲爬取的數(shù)據(jù)源的增加和刪除,以及對被爬行網(wǎng)站的配置(例如改動HTML代碼關鍵字匹配特征以通過HTMLParser抓取到相應類型的新聞)。數(shù)據(jù)源的配置需要定期進行更新和維護,系統(tǒng)需要提供有良好的接口,盡量降低配置的難度和維護的工作量。</p><p> 開始一次數(shù)據(jù)采集過程:手動采
77、集和增量采集(添加定時任務)。兩者的本質(zhì)都是開啟網(wǎng)絡爬蟲對數(shù)據(jù)源網(wǎng)站根據(jù)抓取配置來執(zhí)行數(shù)據(jù)獲取的任務,不同的是手動采集由管理員觸發(fā)后執(zhí)行一次特定任務,增量采集會對部分更新頻率較高的網(wǎng)頁進行周期性的抓取以達到服務器端數(shù)據(jù)庫實時更新的效果。</p><p> 對于數(shù)據(jù)庫中的新聞信息進行分析。</p><p> 進入WEB頁測試本地服務器和系統(tǒng)是否運行正常。</p><p
78、> 將爬取的新聞信息以及分析的結果展示給用戶。</p><p> 3.3.2 普通用戶用例分析</p><p> 普通用戶用例圖如圖3-2所示:</p><p> 圖3-2 普通用戶用例圖</p><p> 對于普通用戶,其使用場景分為五種:</p><p><b> 查看各類新聞;<
79、/b></p><p> 按關鍵字,時間等多條件搜索新聞;</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所示,普通用戶可以進入該系統(tǒng)進行查看各類新聞、按關鍵字,時間等多條件搜索新聞、查看新聞類別分析柱狀圖、查看新聞小類別分析柱狀圖、查看新聞數(shù)量隨月份的變化折線圖、查看在某一天新聞數(shù)量在一天中的變化折線圖以及進行綜合分析統(tǒng)計操作;管理員用戶具有最高權限,除了可以正
81、常使用本系統(tǒng)進行系統(tǒng)功能測試之外,還可以進行控制系統(tǒng)數(shù)據(jù)源、觸發(fā)一次數(shù)據(jù)采集等操作。</p><p> 3.4 功能需求分析</p><p> 根據(jù)上文對于用戶用例的分析,可以總結出本系統(tǒng)的功能需求:</p><p><b> 針對管理員用戶:</b></p><p> 對爬蟲爬取的數(shù)據(jù)源進行便捷的管理操作,包括
82、對數(shù)據(jù)源的增加和刪除以及對于數(shù)據(jù)抓取策略的修改;</p><p> 觸發(fā)一次數(shù)據(jù)采集的過程,包括指定一次手動采集的過程和觸發(fā)一次定時采集的過程以實現(xiàn)數(shù)據(jù)的實時獲取和增量獲取;</p><p> 對于數(shù)據(jù)庫中的數(shù)據(jù)進行分析;</p><p> 具備普通用戶能夠使用的所有功能,可進入WEB頁測試本地服務器和系統(tǒng)是否運行正常。</p>&l
83、t;p><b> 針對普通用戶:</b></p><p> 查看各類新聞:輸入關鍵字和日期進行檢索,查看當前類型的符合條件的新聞;</p><p> 查看新聞類別分析柱狀圖:輸入日期進行檢索,查看當前時間下的新聞類別分析柱狀圖;</p><p> 查看新聞小類別分析柱狀圖:輸入日期進行檢索,可查看當前時間下的小的新聞類別的
84、數(shù)量分析柱狀圖;</p><p> 查看新聞數(shù)量隨月份的變化折線圖:根據(jù)輸入的年份可查看當前年份中新聞發(fā)布數(shù)量隨月份變化的折線圖;</p><p> 查看在某一天新聞數(shù)量在一天中的變化折線圖:根據(jù)輸入的時間可查看當前日期下新聞發(fā)布數(shù)量隨時間變化的折線圖。</p><p> 3.5 性能需求分析</p><p> 本系統(tǒng)運行在Wind
85、ows 7 Ultimate操作系統(tǒng)上,Web服務器選用Apache Tomcat 7.0版本,整個系統(tǒng)的性能指標如下:</p><p><b> 運行環(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> 運行參數(shù):</b></p><p> 最大網(wǎng)絡連接數(shù):65</p><p> 單一主機連接數(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> 下載服務:CPU占用率50%,內(nèi)存占用率500MB</p><p> 解析服務:CPU占用率70%,內(nèi)存占用率800MB</p><p><b> 3.6 本章小結</b></p><p> 本章
89、主要對需求分析階段所做的相關工作進行了描述,為后期系統(tǒng)設計和開發(fā)工作做準備。首先從技術可行性、操作可行性和經(jīng)濟可行性三個方面對系統(tǒng)可行性進行了評估,隨后對系統(tǒng)的用戶對象和用戶用況從管理員用戶和普通用戶兩個角度進行了詳細的分析,并分別總結出了相應的功能需求,最后對系統(tǒng)的性能需求進行了簡要分析。</p><p><b> 4 系統(tǒng)總體設計</b></p><p> 系
90、統(tǒng)需求分析階段主要提出了系統(tǒng)需要做什么,系統(tǒng)設計階段需要解決的問題就是系統(tǒng)需要怎么做。系統(tǒng)設計階段的主要參考依據(jù)是需求分析階段得出的相關結果,據(jù)此進行系統(tǒng)的數(shù)據(jù)庫結構設計和功能模塊設計,本階段的工作是對上一階段分析結果的進一步具體化。</p><p> 4.1 數(shù)據(jù)庫結構設計</p><p> 良好的數(shù)據(jù)庫結構對于保障一個應用程序始終運行在高性能狀態(tài)具有非常重要的意義。數(shù)據(jù)庫結構如果沒
91、有設計好將會給以后的工作帶來很多麻煩,一方面是性能問題,另一方面是維護問題。過多的重復性數(shù)據(jù)會嚴重影響系統(tǒng)的執(zhí)行性能,當這些數(shù)據(jù)的一個實例發(fā)生改變時,其他數(shù)據(jù)也都要進行相應的改變。</p><p> 本系統(tǒng)使用SQL Server 2005作為數(shù)據(jù)庫管理工具,SQL Server 2005是一個具備完整的Web支持的數(shù)據(jù)庫產(chǎn)品,提供了以Web標準為基礎的擴展數(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情感傾向標注列表</p><p> 這三個表之間的實體-關系圖如圖4-1所示:</p><p> 圖4-1 數(shù)據(jù)庫實體-關系圖</p><p> 4.2 系統(tǒng)功能模塊設計&
94、lt;/p><p> 整個新聞爬蟲系統(tǒ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)絡爬蟲來實現(xiàn)。爬蟲程序
95、在針對系統(tǒng)指定的網(wǎng)站進行爬行時,會對網(wǎng)頁中的相關元數(shù)據(jù)進行抽取并保存在本地數(shù)據(jù)庫中。</p><p> 爬蟲程序主要由鏈接過濾子模塊、頁面解析子模塊、爬行控制子模塊以及數(shù)據(jù)存儲子模塊構成,其模塊結構如圖4-3所示:</p><p> 圖4-3 數(shù)據(jù)獲取功能模塊結構圖</p><p><b> 鏈接過濾子模塊</b></p>
96、<p> 在爬蟲程序的爬行過程中,需要不斷地向待抓取的URL隊列中添加新的URL,而爬蟲作為計算機程序具有機械執(zhí)行的特性,無法智能判斷出某一個URL是否需要進行解析,這就要求在爬行過程中需要為爬蟲定義一個鏈接過濾器,只有符合某些條件的URL才能被過濾器所識別,其余不符合條件的URL將會被鏈接過濾器過濾掉,不會加入到待抓取的爬行隊列中去,同時對于符合條件的URL也要判斷該URL是否被爬取過,如果已被爬過則舍棄。</p&g
97、t;<p> 在爬蟲中采用鏈接過濾器進行URL過濾是很有必要的。一方面,能夠被過濾器識別的URL符合用戶預定義的過濾規(guī)則,這些URL全部都是用戶所期望獲取的數(shù)據(jù)來源,數(shù)據(jù)抓取的準確性得到很好的保證;另一方面,由于大量不符合條件的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解析工具對其進行解析并進行元數(shù)據(jù)抽?。粚τ诘诙怘TML頁面,則需要對其進行URL抽取而非元數(shù)據(jù)抽取,將HTML中復合鏈接過濾器的URL全部提取出來進行重爬判斷并將符合條件的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> 在每次進行完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ù)可視化功能結構圖</p&
102、gt;<p> 系統(tǒng)可視化功能模塊的主要功能結構如圖4-8所示,通過ExtJS結合Google Visualization API進行構建,其主要功能包括:</p><p> 顯示歡迎頁:用戶進入本系統(tǒng)后顯示歡迎信息并對系統(tǒng)主要功能進展示;</p><p> 查看各類新聞:查看當前類型的新聞;</p><p> 按關鍵字,時間等多條件搜索新
103、聞:輸入關鍵字和日期進行檢索,查看當前符合條件的新聞;</p><p> 查看新聞類別分析柱狀圖:輸入日期進行檢索,可查看當前日期下的新聞類別的分析柱狀圖,在沒有日期限制的條件下就顯示全部新聞的類別分析柱狀圖;</p><p> 查看新聞小類別分析柱狀圖:輸入日期進行檢索,可查看當前日期下的新聞小類別的分析柱狀圖,在沒有日期限制的條件下就顯示全部新聞的小類別分析柱狀圖;</p&g
104、t;<p> 查看新聞數(shù)量隨月份的變化折線圖:輸入日期進行檢索,可查看對于當前年份下的新聞數(shù)量隨月份變化的折線圖;</p><p> 查看新聞數(shù)量在一天中的變化折線圖:輸入日期進行檢索,可查看對于當前日期下的新聞數(shù)量隨時間變化的折線圖;</p><p><b> 4.3 本章小結</b></p><p> 本章節(jié)對新聞爬蟲
105、系統(tǒng)進行了數(shù)據(jù)庫結構的總體設計以及系統(tǒng)功能模塊的總體設計,并對數(shù)據(jù)獲取功能模塊的子模塊以及數(shù)據(jù)可視化功能模塊的功能結構做出了明確的劃分,為系統(tǒng)詳細設計與實現(xiàn)階段的工作備好條件。</p><p> 5 系統(tǒng)詳細設計與實現(xiàn)</p><p> 本章節(jié)將圍繞新聞爬蟲系統(tǒng)的功能模塊詳細設計和技術實現(xiàn)展開詳細說明,針對系統(tǒng)總體設計進行細化和擴充,詳細地設計每個模塊實現(xiàn)算法以及所需的局部結構,最后將
106、所有的設計方案進行技術實現(xiàn)。</p><p> 5.1 數(shù)據(jù)獲取模塊</p><p> 數(shù)據(jù)獲取模塊主要利用Java語言結合HTTPClient開源工具編寫了一個針對新聞的可擴展的網(wǎng)絡爬蟲,該爬蟲程序能夠按照廣度優(yōu)先的爬行策略對新聞數(shù)據(jù)進行全面的定向抓取以及周期性的增量抓取。</p><p> 在爬蟲程序執(zhí)行數(shù)據(jù)抓取的過程中,采用HTMLParser對獲取到的
107、新聞信息進行元數(shù)據(jù)抽取,將新聞的URL、標題、內(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ù)源,進行數(shù)據(jù)抓取過程的相關操作。界面下方的空白區(qū)域使用JTextArea實
108、現(xiàn),其作用是截獲系統(tǒng)的控制臺輸出并進行顯示,用于指示當前的爬行動態(tài)信息。界面底部使用JProgressBar實現(xiàn)了一個爬行進度指示條,用于指示當前爬行操作的執(zhí)行進度。</p><p> 圖5-1 爬蟲程序初始界面</p><p> 5.1.2 “建立連接”操作</p><p> 用戶點擊“建立連接”按鈕可以獲取到數(shù)據(jù)庫的連接,通過點擊“測試連接”按鈕可以連接到
109、測試數(shù)據(jù)庫進行各類測試操作而不影響主數(shù)據(jù)庫的數(shù)據(jù)。用戶在點擊“建立連接”按鈕后,在控制臺進行當前狀態(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ù)庫的連接之后,可以通過選擇新聞類別(可細分為china、
110、world、society、mil)開始抓取數(shù)據(jù),數(shù)據(jù)來源和爬行限制選項可在界面上部進行控制。例如我們選擇對于china對應的國內(nèi)新聞進行爬取則程序會對國內(nèi)新聞開始進行抓取(如圖5-4所示)并將帖子信息寫入到數(shù)據(jù)庫中(如圖5-5所示)。</p><p> 圖5-3 需要抓取的新聞列表</p><p> 圖5-4 正在進行抓取</p><p> 圖5-5 新聞信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 主題網(wǎng)絡爬蟲的設計與實現(xiàn)---畢業(yè)論文
- 新聞發(fā)布系統(tǒng)的設計與實現(xiàn)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)設計與實現(xiàn)畢業(yè)論文
- 畢業(yè)論文——校園新聞發(fā)布系統(tǒng)的設計與實現(xiàn)
- 網(wǎng)絡爬蟲的設計與實現(xiàn)畢業(yè)論文(含外文翻譯)
- 畢業(yè)論文(設計)面向web service的網(wǎng)絡爬蟲設計與實現(xiàn)
- 網(wǎng)絡爬蟲的設計與實現(xiàn)畢業(yè)論文(含外文翻譯)
- 新聞發(fā)布系統(tǒng)的設計與實現(xiàn)──新聞管理、類目管理【畢業(yè)論文】
- 聚焦爬蟲系統(tǒng)的設計與實現(xiàn) —— 頁面解析與評價器模塊---畢業(yè)論文
- 聚焦爬蟲系統(tǒng)的設計與實現(xiàn) —— 頁面解析與評價器模塊---畢業(yè)論文
- 基于web新聞發(fā)布系統(tǒng)的設計與實現(xiàn)畢業(yè)論文
- 結業(yè)畢業(yè)論文新聞發(fā)布系統(tǒng)設計實現(xiàn)分析方案結業(yè)畢業(yè)論文
- 畢業(yè)論文---基于jsp綜合新聞發(fā)布系統(tǒng)設計與實現(xiàn)
- 畢業(yè)論文--基于mvc模式的新聞發(fā)布系統(tǒng)的設計與實現(xiàn)
- 研究面向服務的網(wǎng)絡爬蟲系統(tǒng)——網(wǎng)絡爬蟲系統(tǒng)的設計和構建---畢業(yè)論文
- 研究面向服務的網(wǎng)絡爬蟲系統(tǒng)——網(wǎng)絡爬蟲系統(tǒng)的設計和構建---畢業(yè)論文
- 在線畢業(yè)論文提交系統(tǒng)的設計與實現(xiàn)——畢業(yè)論文
- 新聞發(fā)布系統(tǒng)的設計與實現(xiàn)——新聞搜索評論功能和評論管理功能的設計與實現(xiàn)【畢業(yè)論文】
- 畢業(yè)論文---基于php+mysql的新聞發(fā)布系統(tǒng)的設計與實現(xiàn)
- 畢業(yè)設計(論文)新聞發(fā)布系統(tǒng)的設計與實現(xiàn)
評論
0/150
提交評論