【正文】
實(shí)現(xiàn)了數(shù)據(jù)可視化功能,兼顧用戶交互方式的多樣性以及系統(tǒng)的跨瀏覽器兼容性。通過(guò)使用測(cè)試用例對(duì)整個(gè)系統(tǒng)進(jìn)行了詳細(xì)測(cè)試,系統(tǒng)能夠達(dá)到大部分測(cè)試用例的預(yù)期結(jié)果,偶而出現(xiàn)個(gè)別測(cè)試不通過(guò)的情況,經(jīng)過(guò)仔細(xì)的分析和調(diào)試發(fā)現(xiàn)了系統(tǒng)的漏洞并對(duì)其進(jìn)行調(diào)整和修改,之后所有測(cè)試用例全部通過(guò),均達(dá)到了預(yù)期的測(cè)試結(jié)果。白盒測(cè)試主要用于對(duì)程序模塊的測(cè)試[10]。 軟件測(cè)試的方法軟件測(cè)試用例的設(shè)計(jì)方法大體可分為兩類(lèi):黑盒測(cè)試和白盒測(cè)試。 一個(gè)好的測(cè)試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)錯(cuò)誤的測(cè)試用例。本章節(jié)按照系統(tǒng)測(cè)試的原則設(shè)計(jì)出多個(gè)測(cè)試用例,根據(jù)系統(tǒng)測(cè)試的常用方法對(duì)新聞爬蟲(chóng)系統(tǒng)進(jìn)行測(cè)試。 新聞小類(lèi)別分析柱狀圖用戶需要輸入日期進(jìn)行檢索,查看當(dāng)前日期下的相應(yīng)類(lèi)別的新聞數(shù)量,當(dāng)用戶不輸入日期時(shí)就顯示相應(yīng)類(lèi)型的全部的新聞數(shù)量。例如日期設(shè)定為“20140608”,進(jìn)行分析,則顯示出的統(tǒng)計(jì)圖如圖510所示:圖510 按時(shí)辰分析折線圖根據(jù)分析結(jié)果可以看到新聞發(fā)布的高峰期以及新聞發(fā)布數(shù)量隨時(shí)間變化的趨勢(shì)。例如我們選擇對(duì)于china對(duì)應(yīng)的國(guó)內(nèi)新聞進(jìn)行爬取則程序會(huì)對(duì)國(guó)內(nèi)新聞開(kāi)始進(jìn)行抓?。ㄈ鐖D54所示)并將帖子信息寫(xiě)入到數(shù)據(jù)庫(kù)中(如圖55所示)。界面底部使用JProgressBar實(shí)現(xiàn)了一個(gè)爬行進(jìn)度指示條,用于指示當(dāng)前爬行操作的執(zhí)行進(jìn)度。在爬蟲(chóng)程序執(zhí)行數(shù)據(jù)抓取的過(guò)程中,采用HTMLParser對(duì)獲取到的新聞信息進(jìn)行元數(shù)據(jù)抽取,將新聞的URL、標(biāo)題、內(nèi)容、發(fā)布方、發(fā)布時(shí)間、新聞?lì)悇e等元數(shù)據(jù)以及新聞的圖片存入SQL Server數(shù)據(jù)庫(kù)中。爬行控制子模塊的工作流程如圖46所示:圖46 爬行控制子模塊4) 數(shù)據(jù)存儲(chǔ)子模塊在每次進(jìn)行完HTML頁(yè)面的信息抽取之后,都要將所有獲取到的元數(shù)據(jù)寫(xiě)入到數(shù)據(jù)庫(kù)中去,另外還需要將本次抓取的URL也寫(xiě)入數(shù)據(jù)庫(kù)中。鏈接過(guò)濾子模塊的工作方式如圖44所示:圖44 鏈接過(guò)濾子模塊2) 頁(yè)面解析子模塊爬行隊(duì)列在爬蟲(chóng)程序中的地位是非常重要的。爬蟲(chóng)程序在針對(duì)系統(tǒng)指定的網(wǎng)站進(jìn)行爬行時(shí),會(huì)對(duì)網(wǎng)頁(yè)中的相關(guān)元數(shù)據(jù)進(jìn)行抽取并保存在本地?cái)?shù)據(jù)庫(kù)中。本系統(tǒng)使用SQL Server 2005作為數(shù)據(jù)庫(kù)管理工具,SQL Server 2005是一個(gè)具備完整的Web支持的數(shù)據(jù)庫(kù)產(chǎn)品,提供了以Web標(biāo)準(zhǔn)為基礎(chǔ)的擴(kuò)展數(shù)據(jù)庫(kù)編程功能。系統(tǒng)設(shè)計(jì)階段的主要參考依據(jù)是需求分析階段得出的相關(guān)結(jié)果,據(jù)此進(jìn)行系統(tǒng)的數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)和功能模塊設(shè)計(jì),本階段的工作是對(duì)上一階段分析結(jié)果的進(jìn)一步具體化。2) 針對(duì)普通用戶:a) 查看各類(lèi)新聞:輸入關(guān)鍵字和日期進(jìn)行檢索,查看當(dāng)前 類(lèi)型的符合條件的新聞;b) 查看新聞?lì)悇e分析柱狀圖:輸入日期進(jìn)行檢索,查看 當(dāng)前時(shí)間下的新聞?lì)悇e分析柱狀圖;c) 查看新聞小類(lèi)別分析柱狀圖:輸入日期進(jìn)行檢索,可查看當(dāng)前時(shí)間下的小的新聞?lì)悇e的數(shù)量分析柱狀圖; d) 查看新聞數(shù)量隨月份的變化折線圖:根據(jù)輸入的年份可查看當(dāng)前年份中新聞發(fā)布數(shù)量隨月份變化的折線圖;e) 查看在某一天新聞數(shù)量在一天中的變化折線圖:根據(jù)輸入的時(shí)間可查看當(dāng)前日期下新聞發(fā)布數(shù)量隨時(shí)間變化的折線圖。5) 將爬取的新聞信息以及分析的結(jié)果展示給用戶。2) 開(kāi)始一次數(shù)據(jù)采集過(guò)程:手動(dòng)采集和增量采集(添加定時(shí)任務(wù))。 對(duì)于行政機(jī)構(gòu)類(lèi)用戶,他們需要對(duì)國(guó)內(nèi)重點(diǎn)論壇和新聞門(mén)戶網(wǎng)站,也包含國(guó)外部分敏感網(wǎng)站,特別是國(guó)外的Twitter,F(xiàn)acebook等網(wǎng)站進(jìn)行一些監(jiān)控,以對(duì)一些敏感事件進(jìn)行及時(shí)的發(fā)現(xiàn)、后續(xù)跟蹤,同時(shí)對(duì)于民意的聽(tīng)取也很感興趣,從而做到對(duì)特殊事件的早發(fā)現(xiàn)、早預(yù)警,為及時(shí)處置奠定基礎(chǔ)。本系統(tǒng)的用戶一般是新聞熱點(diǎn)分析部門(mén)或是各公安部門(mén)的觀察員。例如:為政府機(jī)關(guān)、公安、廣電、教育機(jī)構(gòu)提供輿情監(jiān)測(cè)服務(wù),為上市公司、投資機(jī)構(gòu)、金融監(jiān)管機(jī)構(gòu)提供口碑管理服務(wù),為各類(lèi)商業(yè)公司提供競(jìng)爭(zhēng)情報(bào)管理、招投標(biāo)監(jiān)測(cè)、危機(jī)公關(guān)處理、市場(chǎng)調(diào)研、趨勢(shì)分析以及營(yíng)銷(xiāo)效果評(píng)估等服務(wù)。ExtJS作為開(kāi)源JavaScript框架,功能強(qiáng)大,界面美觀,使用AJAX技術(shù)開(kāi)發(fā)RIA應(yīng)用。新聞信息的可視化模塊可以通過(guò)借助Google Visualization API動(dòng)態(tài)地將新聞顯示在交互方式非常豐富的圖表上,再結(jié)合ExtJS構(gòu)建一個(gè)富互聯(lián)網(wǎng)應(yīng)用,整個(gè)系統(tǒng)能夠提供良好的用戶體驗(yàn)。 本章簡(jiǎn)要介紹了進(jìn)行本次新聞爬蟲(chóng)系統(tǒng)開(kāi)發(fā)所需要的相關(guān)理論和技術(shù),主要包括網(wǎng)絡(luò)爬蟲(chóng)的定義,爬取策略等理論知識(shí),J2EE技術(shù)、SQL Server 2005數(shù)據(jù)庫(kù)管理系統(tǒng)以及ExtJS框架相關(guān)知識(shí),并對(duì)系統(tǒng)開(kāi)發(fā)過(guò)程中用到的一些關(guān)鍵開(kāi)源工具做出了簡(jiǎn)要說(shuō)明,這些關(guān)鍵技術(shù)的學(xué)習(xí)和掌握為接下來(lái)的系統(tǒng)分析及設(shè)計(jì)實(shí)現(xiàn)提供了堅(jiān)實(shí)的理論基礎(chǔ)。 HTMLParserHTMLParser是一個(gè)利用純Java語(yǔ)言編寫(xiě)的進(jìn)行HTML解析的庫(kù),它不依賴于其它的Java庫(kù)文件,主要用于改造或提取HTML,其特點(diǎn)是能夠超高速解析HTML文件,而且不會(huì)出錯(cuò)。 HTTP協(xié)議可能是現(xiàn)在Internet上使用得最多、最重要的協(xié)議了,越來(lái)越多的Java應(yīng)用程序需要直接通過(guò)HTTP協(xié)議來(lái)訪問(wèn)網(wǎng)絡(luò)資源。ExtJS的組件結(jié)構(gòu)如圖23所示:圖23 ExtJS組件結(jié)構(gòu)圖ExtJS初期僅是對(duì)Yahoo! UI的對(duì)話框擴(kuò)展,后來(lái)逐漸有了自己的特色,深受技術(shù)研發(fā)人員的喜愛(ài)。 ExtJS簡(jiǎn)介 ExtJS是一個(gè)JavaScript庫(kù),功能強(qiáng)大,界面美觀,可以使用AJAX, DHTML,DOM等技術(shù)來(lái)開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用程序。1992年Sybase和Microsoft這兩家公司將SQL Server移植到了Windows NT操作系統(tǒng)上,后來(lái)Microsoft致力于Windows NT平臺(tái)的SQL Server的開(kāi)發(fā),而Sybase則專注于SQL Server在UNIX上的應(yīng)用[6]。典型的J2EE應(yīng)用體系結(jié)構(gòu)如圖21所示:圖21 J2EE體系結(jié)構(gòu)圖總體來(lái)說(shuō),使用J2EE技術(shù)開(kāi)發(fā)Web事務(wù)系統(tǒng)有以下優(yōu)點(diǎn):第一,開(kāi)發(fā)高效,J2EE有完善的開(kāi)源社區(qū)支持,像Spring,Struts這些框架可以大大縮短開(kāi)發(fā)周期;第二,支持不同的操作系統(tǒng)環(huán)境,因?yàn)镴ava天生具有“一次編譯,隨處運(yùn)行”的特點(diǎn),基于J2EE開(kāi)發(fā)的應(yīng)用程序不依賴特定的操作系統(tǒng)、硬件等,也就具有了開(kāi)發(fā)一次就可以在各個(gè)平臺(tái)部署的特點(diǎn);第三,穩(wěn)定的高可用性,得益于從Java繼承而來(lái)的跨平臺(tái)特性,J2EE系統(tǒng)部署到可靠的操作環(huán)境中,一些對(duì)系統(tǒng)魯棒性要求很高的大型商務(wù)系統(tǒng)可以選擇比Windows更為健壯的Linux操作系統(tǒng),這是更為理想的選擇。J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個(gè)應(yīng)用組件根據(jù)他們所在的層分布在不同的機(jī)器上。J2EE組件和“標(biāo)準(zhǔn)的”Java類(lèi)的不同點(diǎn)在于:它被裝配在一個(gè)J2EE應(yīng)用中,具有固定的格式并遵守J2EE規(guī)范,由J2EE服務(wù)器對(duì)其進(jìn)行管理。因?yàn)樽罴褍?yōu)先策略是一種局部最優(yōu)搜索算法。其基本思想是認(rèn)為與初始URL在一定鏈接距離內(nèi)的網(wǎng)頁(yè)具有主題相關(guān)性的概率很大。深度優(yōu)先在很多時(shí)候會(huì)導(dǎo)致爬蟲(chóng)的陷入問(wèn)題,目前常見(jiàn)的是廣度優(yōu)先和最佳優(yōu)先方法。2 系統(tǒng)開(kāi)發(fā)知識(shí)準(zhǔn)備 本章簡(jiǎn)要介紹了進(jìn)行本次新聞爬蟲(chóng)系統(tǒng)開(kāi)發(fā)所需要的相關(guān)理論和技術(shù),這些關(guān)鍵技術(shù)的學(xué)習(xí)和掌握為接下來(lái)的系統(tǒng)分析及設(shè)計(jì)實(shí)現(xiàn)提供了堅(jiān)實(shí)的理論基礎(chǔ)。第4章 對(duì)本系統(tǒng)進(jìn)行了總體設(shè)計(jì),包括數(shù)據(jù)庫(kù)結(jié)構(gòu)的總體設(shè)計(jì)以及系統(tǒng)功能模塊的總體設(shè)計(jì),并對(duì)數(shù)據(jù)獲取功能模塊的子模塊以及數(shù)據(jù)可視化功能模塊的功能結(jié)構(gòu)做出了明確的劃分,為系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)階段的工作備好條件。本系統(tǒng)的運(yùn)行流程大致如下:首先利用爬蟲(chóng)工具將新聞數(shù)據(jù)獲取到本地?cái)?shù)據(jù)庫(kù)中,之后對(duì)其進(jìn)行數(shù)據(jù)分析,最后將新聞內(nèi)容信息以及分析結(jié)果在前臺(tái)網(wǎng)頁(yè)中進(jìn)行可視化輸出。IDGS 能夠在萬(wàn)維網(wǎng)上對(duì)信息進(jìn)行自動(dòng)查詢,采用向量空間模型技術(shù)對(duì)內(nèi)容進(jìn)行檢索,同時(shí)利用權(quán)重評(píng)價(jià)技術(shù)來(lái)進(jìn)行統(tǒng)計(jì)。通過(guò)用戶搜索參數(shù)的改變,每一個(gè)頁(yè)面都會(huì)建立一個(gè)對(duì)應(yīng)的引用關(guān)系,最后將他們進(jìn)行合并。使得該系統(tǒng)在準(zhǔn)確度和相關(guān)度方面有了大幅度的提升[2]。雖然CORA分析地址和主題的能力還很不足,同時(shí)也不具備對(duì)網(wǎng)頁(yè)進(jìn)行分析的能力,但是這仍然無(wú)法抹殺它在自動(dòng)搜集資源方面取得的重大成就。后來(lái)在1998年和1999年相繼出現(xiàn)了Shark Search System和聚焦爬蟲(chóng)(Focused Crawler)[1]。相對(duì)于基于鏈接分析的搜索方式,這是搜索技術(shù)的一個(gè)突破性進(jìn)展,他們采取了一種新的思維方式,建立一個(gè)針對(duì)主題的詞庫(kù)。同時(shí)他們還驚奇的發(fā)現(xiàn),相似度最高的在傳統(tǒng)引文方面。因此可以說(shuō)爬蟲(chóng)系統(tǒng)是整個(gè)分析系統(tǒng)的基礎(chǔ),并且爬蟲(chóng)系統(tǒng)輸出結(jié)果的好壞直接影響著系統(tǒng)結(jié)果的展現(xiàn)。 新聞爬蟲(chóng)系統(tǒng)項(xiàng)目建設(shè)意義重大。在數(shù)據(jù)分析與數(shù)據(jù)展示方面,系統(tǒng)通過(guò)對(duì)得到的信息進(jìn)行深入的分析,將分析結(jié)果進(jìn)行多維度的展現(xiàn)。讓系統(tǒng)的工作人員可以靜觀事態(tài)的發(fā)展。如何使搜索引擎能夠時(shí)刻滿足人們的需求?最初的檢索功能通過(guò)索引站的方式實(shí)現(xiàn),從而有了網(wǎng)絡(luò)機(jī)器人。網(wǎng)絡(luò)新聞熱點(diǎn)通常形成迅速,多是人們對(duì)于日常生活中的各種問(wèn)題發(fā)表的各種意見(jiàn),評(píng)論,態(tài)度,情緒等,隨著事件的發(fā)展而變化,是反映社會(huì)熱點(diǎn)的重要載體之一。 開(kāi)發(fā)背景及目的隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用的普及,網(wǎng)絡(luò)作為信息的載體,已經(jīng)成為社會(huì)大眾參與社會(huì)生活的一種重要信息渠道。本文所描述的新聞爬蟲(chóng)系統(tǒng)其數(shù)據(jù)來(lái)源主要是新浪新聞,首先利用爬蟲(chóng)工具將新聞數(shù)據(jù)獲取到本地?cái)?shù)據(jù)庫(kù)中,然后將新聞信息以及新聞分析的結(jié)果將在前臺(tái)網(wǎng)頁(yè)中進(jìn)行可視化輸出。山東科技大學(xué)本科畢業(yè)設(shè)計(jì)(論文)摘要隨著計(jì)算機(jī)網(wǎng)絡(luò)在世界范圍的飛速發(fā)展,互聯(lián)網(wǎng)作為最具潛力與活力的媒體已經(jīng)被公認(rèn)是繼報(bào)紙,廣播,電視之后的“第四媒體”,成為反映社會(huì)新聞熱點(diǎn)的重要載體。本文借助于爬蟲(chóng)領(lǐng)域的相關(guān)技術(shù)與工具,結(jié)合新聞熱點(diǎn)分析系統(tǒng)的需求從原理或工作流程上詳細(xì)論述了爬蟲(chóng)系統(tǒng)中核心模塊的具體實(shí)現(xiàn)。關(guān)鍵詞:新聞熱點(diǎn),網(wǎng)絡(luò)爬蟲(chóng),元數(shù)據(jù)抽取,可視化ABSTRACTWith the rapid development of World Wide Web(WWW),it is widelyaccepted that the internet,called the Fourth Media,will be the most potentialand energetic media after newspaper,radio and television as an important carrier of the hot society order to know the internet hot news 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 is responsible for the information collection . 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 .The data of the news spider system es 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 article mainly has carried on the following several aspects work: 1) Using Java and HTTPClient developed a scalable web crawler which focus on DISCUZ BBS. Besides, this crawler can conduct a prehensive orientation of fetching and periodic increment of fetching from BBS data (including the BBS post information and all its replies) under breadthfirst strategy. 2)Using HTMLParser to extract metadata from the BBS information, parsed and stored the metadata, such as number, title, content, poster, posting time and the corresponding reply in a SQL Server database.3) frontend interface bined with the use of open source AJAX framework ExtJS Servlet be achieved, taking into account the diversity of user interaction and system crossbrowser patibility. By using this news crawling system, users can realtime news and information updated, t