版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1分布式爬蟲系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要:隨著互聯(lián)網(wǎng)的快速發(fā)展,越來越多的人通過互聯(lián)網(wǎng)獲取每日新聞內(nèi)容。但是,隨著互聯(lián)網(wǎng)的高速發(fā)展下,互聯(lián)網(wǎng)上的信息也存在著數(shù)量繁多,范圍廣泛,重復(fù)率過高等問題。由于目前的搜索引擎往往通過模糊匹配的方式來顯示與用戶搜索內(nèi)容所相關(guān)的信息,導(dǎo)致部分用戶無法通過搜索引擎快速的得到他們所需求的特定內(nèi)容。對于部分用戶的一些具體化、精細(xì)化的需求,就需要這樣一個(gè)網(wǎng)絡(luò)爬蟲,可以實(shí)時(shí)爬取新聞類網(wǎng)站的信息,并根據(jù)爬取的內(nèi)容將新聞進(jìn)行分類,通過分類進(jìn)行展示并統(tǒng)計(jì)出各個(gè)分類下的新聞總數(shù),使用戶可以快速獲取到想要的新聞內(nèi)容,大大的減少了用戶查詢新聞的時(shí)間,使整個(gè)新聞瀏覽過程變得非常便利。本文通過研究網(wǎng)絡(luò)爬蟲的現(xiàn)狀,分析得到本系統(tǒng)核心模塊分別是:爬蟲模塊、數(shù)據(jù)清洗模塊、數(shù)據(jù)存儲模塊、數(shù)據(jù)統(tǒng)計(jì)分析模塊以及數(shù)據(jù)顯示模塊。系統(tǒng)采用Python作為開發(fā)語言,使用Scrapy框架進(jìn)行爬蟲架構(gòu)搭建,數(shù)據(jù)庫選擇Redis和MongoDB數(shù)據(jù)庫,前端采用與JavaScript技術(shù)進(jìn)行開發(fā)。創(chuàng)建一個(gè)方便快捷,直觀的新聞類爬蟲系統(tǒng)。本系統(tǒng)可以根據(jù)字段的設(shè)計(jì)爬取到相應(yīng)的內(nèi)容,并將數(shù)據(jù)存儲到本地?cái)?shù)據(jù)庫,通過連接數(shù)據(jù)庫顯示新聞一級分類、二級分類、新聞標(biāo)題、新聞內(nèi)容。并可以統(tǒng)計(jì)出各個(gè)分類下爬取到的總新聞數(shù)。使用戶可以非常便利的通過本系統(tǒng)獲取新聞信息。經(jīng)測試,本系統(tǒng)功能開發(fā)齊全,是一套性能穩(wěn)定且無上手難度的爬蟲系統(tǒng)。關(guān)鍵詞:分布式爬蟲系統(tǒng);MongoDB;數(shù)據(jù)庫原理目錄1緒論 11.1研究目的及意義 11.1.1研究目的 11.1.2研究意義 11.2國內(nèi)外研究現(xiàn)狀 11.2.1國外研究現(xiàn)狀 11.2.2國內(nèi)研究現(xiàn)狀 21.3本課題研究內(nèi)容和研究步驟 31.3.1研究內(nèi)容 31.3.2研究步驟 31.4論文組織結(jié)構(gòu) 42開發(fā)工具及相關(guān)技術(shù) 52.1Python 52.2Pycharm集成開發(fā)工具 52.3Scrapy 52.4Xpath 52.5Redis數(shù)據(jù)庫 62.6MongoDB數(shù)據(jù)庫 62.7本章小結(jié) 63系統(tǒng)分析 73.1系統(tǒng)設(shè)計(jì)目標(biāo) 73.2系統(tǒng)可行性分析 73.2.1技術(shù)可行性 73.2.2經(jīng)濟(jì)可行性 73.2.3操作可行性 73.3功能需求分析 83.4本章小結(jié) 94系統(tǒng)設(shè)計(jì) 104.1系統(tǒng)總體設(shè)計(jì) 104.2.1系統(tǒng)邏輯設(shè)計(jì) 104.2.2系統(tǒng)工作流程 104.2數(shù)據(jù)庫設(shè)計(jì) 114.3本章小結(jié) 125系統(tǒng)實(shí)現(xiàn) 135.1爬蟲模塊 135.2可視化模塊 155.2.1頁面統(tǒng)計(jì)展示模塊 155.2.2新聞內(nèi)容模塊 165.3本章小結(jié) 166系統(tǒng)測試 186.1測試目的 186.2測試方法 186.3測試用例 186.4本章小結(jié) 207總結(jié)與展望 217.1總結(jié) 217.2展望 21參考文獻(xiàn) 231緒論1.1研究目的及意義1.1.1研究目的隨著互聯(lián)網(wǎng)時(shí)代的快速發(fā)展,人們獲取信息的方式逐漸多樣化。在網(wǎng)絡(luò)的快速普及下,越來越多的人都會選擇從互聯(lián)網(wǎng)上獲取自己所需要的信息。根據(jù)中國互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)在京發(fā)布的第46次《中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》中顯示,截止到2020年6月,中國網(wǎng)民的數(shù)量以達(dá)到9.4億,較2020年3月增加3625萬?;ヂ?lián)網(wǎng)普及率達(dá)67%,較同年三月份提升2.5個(gè)百分點(diǎn)[1]。但是,隨著互聯(lián)網(wǎng)的高速發(fā)展下,互聯(lián)網(wǎng)上的信息也存在著數(shù)量繁多,范圍廣泛,重復(fù)率過高等問題。由于目前的搜索引擎往往通過模糊匹配的方式來顯示與用戶搜索內(nèi)容所相關(guān)的信息,導(dǎo)致部分用戶無法通過搜索引擎快速的得到他們所需求的特定內(nèi)容[2]。對于部分用戶的一些具體化、精細(xì)化的需求,網(wǎng)絡(luò)爬蟲應(yīng)運(yùn)而生。1.1.2研究意義網(wǎng)絡(luò)爬蟲作為獲取特定信息的一項(xiàng)工具。早在90年代初就已被廣泛應(yīng)用。其主要目標(biāo)就是精確獲取互聯(lián)網(wǎng)上的內(nèi)容以方便人們使用。但在最初階段,一個(gè)網(wǎng)絡(luò)爬蟲往往都是在一臺機(jī)器上運(yùn)行。但隨著互聯(lián)網(wǎng)的快速發(fā)展以及網(wǎng)站數(shù)量的的快速增長,單機(jī)版的爬蟲已經(jīng)很難在短時(shí)間內(nèi)獲取大量特定的信息。在這樣的一個(gè)背景下,研究制作一個(gè)支持多臺機(jī)器并行采集數(shù)據(jù)的分布式網(wǎng)絡(luò)爬蟲是很有必要的。通過分布式技術(shù),能夠解決單個(gè)服務(wù)器出現(xiàn)的性能不足等問題。通過各個(gè)服務(wù)器檢索并交換數(shù)據(jù),來提高數(shù)據(jù)的采集,并能減輕服務(wù)器的負(fù)擔(dān)。且能通過分布式技術(shù)將采集到的數(shù)據(jù)分開存儲,能夠提高數(shù)據(jù)的查詢效率且更有利于數(shù)據(jù)庫的管理。這就是研究分布式網(wǎng)絡(luò)爬蟲的意義所在。1.2國內(nèi)外研究現(xiàn)狀1.2.1國外研究現(xiàn)狀在國外,對于爬蟲的研究可以追溯到1993年,出現(xiàn)了諸如WorldWideWebWorm等爬蟲程序[3]。它們的主要功能是利用有限的URL種子幾何去收集并統(tǒng)計(jì)網(wǎng)絡(luò)信息。通過反復(fù)下載Web頁面來更新它們的URL倉庫。在1994年,誕生了兩個(gè)新的網(wǎng)絡(luò)爬蟲程序:webCrawler和MOMspider[4]。它們除了去收集與統(tǒng)計(jì)外,還首次引入了禮貌爬取和黑名單的概念。到了1998年。為了解決爬蟲的可延展性。SergeyMikhaylovichBrin和LawrenceEdwardLarryPage設(shè)計(jì)了一個(gè)大規(guī)模網(wǎng)絡(luò)爬蟲,也就是如今家喻戶曉的Google[5]。它通過數(shù)據(jù)壓縮以及建立索引等方式來優(yōu)化對磁盤的訪問,減少磁盤的訪問時(shí)間。并通過PageRank算法來計(jì)算用戶訪問該頁面的幾率,通過該幾率值來對頁面進(jìn)行不同頻率的訪問,來減少冷門頁面的訪問率以進(jìn)一步優(yōu)化爬蟲程序?qū)W(wǎng)絡(luò)資源的訪問,進(jìn)而實(shí)現(xiàn)對所爬取頁面的快速更新[6]。直到目前,網(wǎng)絡(luò)爬蟲的技術(shù)也在不斷的發(fā)展,像IBM的webFountain就能夠在高更新率的前提下對網(wǎng)頁進(jìn)行整體離線。UbiCrawler通過P2P技術(shù)將網(wǎng)頁去重的工作分擔(dān)給了每位用戶[7]。諸如此類,國外對于網(wǎng)絡(luò)爬蟲的研究仍然火熱。1.2.2國內(nèi)研究現(xiàn)狀關(guān)于國內(nèi)對于網(wǎng)絡(luò)爬蟲的研究,比較知名的如百度的baiduspider,有道的youdaobot等商業(yè)爬蟲[8]。像百度的baiduspider就可以根據(jù)服務(wù)器的負(fù)載能力動態(tài)調(diào)整訪問密度,從而降低服務(wù)器的壓力。而非商業(yè)的網(wǎng)絡(luò)爬蟲,比較有名的比如北京大學(xué)網(wǎng)絡(luò)實(shí)驗(yàn)室研究的北大天網(wǎng)和上海交通大學(xué)設(shè)計(jì)的lgoo系統(tǒng)。北大天網(wǎng)最初是一個(gè)集中式爬蟲,后來轉(zhuǎn)變?yōu)榉植际脚老x。作為一個(gè)面向局域網(wǎng)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng),北大天網(wǎng)的抓取數(shù)和穩(wěn)定性都比以前提高了許多。主節(jié)點(diǎn)進(jìn)行任務(wù)分配,從節(jié)點(diǎn)負(fù)責(zé)采集,并采用廣度優(yōu)先策略進(jìn)行抓取[9]。而上海交通大學(xué)所研究的lgoo系統(tǒng)則可以通過跨局域網(wǎng)進(jìn)行爬蟲節(jié)點(diǎn)部署,采用二級哈希映射算法進(jìn)行任務(wù)的分配工作,并能保證各個(gè)爬蟲節(jié)點(diǎn)的負(fù)載均衡。是一個(gè)基于網(wǎng)格服務(wù)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng)[10]。綜上所述,目前國內(nèi)外科研機(jī)構(gòu)對于網(wǎng)絡(luò)爬蟲的進(jìn)行了大量的研究,并在服務(wù)器負(fù)載能力、磁盤訪問時(shí)間、冷門網(wǎng)絡(luò)資源訪問頻率等方面做了相應(yīng)的研究與優(yōu)化,但是針對目前日益增長的網(wǎng)民量,研究制作一個(gè)針對于特定類別網(wǎng)站的網(wǎng)絡(luò)爬蟲并通過友好的可視化界面來顯示相應(yīng)內(nèi)容也變得尤為重要,針對這兩個(gè)部分,本課題將研究開發(fā)一套適用于新浪等新聞網(wǎng)站的爬蟲系統(tǒng),分析網(wǎng)站結(jié)構(gòu),采集網(wǎng)站的分類信息資源,并對采集結(jié)果進(jìn)行保存以及提供一個(gè)友好的可視化界面來供用戶使用。通過這樣一套系統(tǒng),可以實(shí)現(xiàn)對特定類別信息的爬取與存儲,使用戶可以更好的獲取相應(yīng)的內(nèi)容,并通過友好的可視化界面,使用戶可以更加方便簡單的去使用本系統(tǒng)。1.3本課題研究內(nèi)容和研究步驟1.3.1研究內(nèi)容本課題基于目前網(wǎng)絡(luò)爬蟲的研究背景以及國內(nèi)外的研究現(xiàn)狀,研究開發(fā)一套適用于新浪等新聞網(wǎng)站的爬蟲系統(tǒng)。本課題的主要研究內(nèi)容如下:(1)爬蟲技術(shù)研究研究爬蟲的相關(guān)技術(shù)。根據(jù)國內(nèi)外現(xiàn)狀的研究,重點(diǎn)研究分布式爬蟲的可伸縮性、性能和有效性、可擴(kuò)展性以及分布式爬蟲的爬取策略、工作分配模式以及節(jié)點(diǎn)部署等相關(guān)內(nèi)容。(2)開發(fā)框架及技術(shù)研究研究分布式爬蟲系統(tǒng)所用的框架以及開發(fā)技術(shù)。對各類可開發(fā)語言進(jìn)行分析比較。分析各類框架的優(yōu)缺點(diǎn)。包括Python的Scrapy庫,Requests庫,分析其優(yōu)缺點(diǎn),討論其適用性。1.3.2研究步驟本項(xiàng)目在深入學(xué)習(xí)分布式網(wǎng)絡(luò)爬蟲的相關(guān)技術(shù),分析新浪等典型新聞網(wǎng)站的結(jié)構(gòu)基礎(chǔ)上,根據(jù)系統(tǒng)功能需求,采用Python語言進(jìn)行開發(fā),使用Scrapy與Django框架進(jìn)行系統(tǒng)搭建,采用Xpath技術(shù)對數(shù)據(jù)進(jìn)行提取解析,通過Redis和MongoDB數(shù)據(jù)庫來完成分布式和數(shù)據(jù)的存儲,實(shí)現(xiàn)一套適用于新浪等新聞網(wǎng)站的方便用戶快速獲取信息的分布式爬蟲系統(tǒng)。本課題采用的研究步驟如下所示:(1)總體結(jié)構(gòu)根據(jù)目前的國內(nèi)外現(xiàn)狀分析以及用戶需求調(diào)研,確定系統(tǒng)的功能模塊為爬蟲模塊;數(shù)據(jù)清洗模塊;數(shù)據(jù)存儲模塊;數(shù)據(jù)顯示模塊以及數(shù)據(jù)統(tǒng)計(jì)分析模塊。并根據(jù)用戶的需求,對系統(tǒng)進(jìn)行相應(yīng)的功能設(shè)計(jì):爬蟲模塊:要求分析網(wǎng)站結(jié)構(gòu),實(shí)現(xiàn)爬蟲策略、內(nèi)容數(shù)據(jù)字段設(shè)計(jì)和增量爬取、去重;數(shù)據(jù)清洗模塊:要求能夠?qū)Σ杉Y(jié)果因格式等原因引起的亂碼進(jìn)行清洗與處理;數(shù)據(jù)存儲模塊:實(shí)現(xiàn)抓取字段設(shè)計(jì)和數(shù)據(jù)存儲功能;數(shù)據(jù)顯示模塊:實(shí)現(xiàn)數(shù)據(jù)的可視化分類顯示;數(shù)據(jù)統(tǒng)計(jì)分析模塊:能夠針對采集結(jié)果進(jìn)行分析統(tǒng)計(jì)。(2)模塊實(shí)現(xiàn)系統(tǒng)方面選擇使用Python語言進(jìn)行開發(fā),Python的優(yōu)勢在于程序編寫簡潔快速,代碼開發(fā)效率高,且擁有大量優(yōu)質(zhì)的文檔與第三方庫,非常方便使用。框架方面選擇Scrapy框架,Scrapy是一套基于Twisted的異步處理框架,是一個(gè)通過Python實(shí)現(xiàn)的爬蟲框架,擁有強(qiáng)大的統(tǒng)計(jì)能力,能在不同的url上爬行,并且支持shell方式,方便進(jìn)行獨(dú)立調(diào)試。針對爬蟲模塊,使用Xpath技術(shù)對下載的網(wǎng)頁進(jìn)行提取解析;數(shù)據(jù)庫方面使用Redis數(shù)據(jù)庫做分布式;使用MongoDb數(shù)據(jù)庫做數(shù)據(jù)存儲。本系統(tǒng)通過scrapy框架,對爬蟲進(jìn)行命名,并設(shè)定初始爬取頁面,之后在item.py中定義本系統(tǒng)所需要的字段。字段定義完成后通過Xpath技術(shù)對頁面進(jìn)行提取解析,并根據(jù)設(shè)計(jì)好的字段進(jìn)行相應(yīng)的爬取。并將爬取好的數(shù)據(jù)存入MongoDb中。(3)測試對所設(shè)計(jì)的系統(tǒng)進(jìn)行相應(yīng)的黑盒測試與白盒測試。所用測試技術(shù)包括單元測試、系統(tǒng)測試、集成測試、壓力測試等。并根據(jù)測試結(jié)果對系統(tǒng)進(jìn)行相應(yīng)的完善。1.4論文組織結(jié)構(gòu)本論文章節(jié)組織框架具體如下:第一章,緒論。對本文的研究背景、國內(nèi)外現(xiàn)狀及研究目的進(jìn)行了概述。第二章,開發(fā)工具及相關(guān)技術(shù)。對平臺開發(fā)所用的技術(shù)及其功能進(jìn)行初步的介紹,并對本系統(tǒng)所涉及的技術(shù)做相關(guān)說明。第三章,系統(tǒng)分析。明確本系統(tǒng)的設(shè)計(jì)目標(biāo),對可行度和用戶需求進(jìn)行了分析。第四章,系統(tǒng)設(shè)計(jì)。就平臺架構(gòu)、平臺功能結(jié)構(gòu)、數(shù)據(jù)庫表及數(shù)據(jù)庫概念模型進(jìn)行了設(shè)計(jì)。第五章,系統(tǒng)實(shí)現(xiàn)。通過劃分不同的角色,對不同角色的不同功能分別進(jìn)行設(shè)計(jì)與實(shí)現(xiàn),詳細(xì)描述本平臺的頁面布局及其功能實(shí)現(xiàn)的具體邏輯。第六章,系統(tǒng)測試。完成對本平臺核心模塊的測試。第七章,總結(jié)與展望??偨Y(jié)全文,分析本系統(tǒng)已經(jīng)打到的效果以及暴露出的漏洞,以此對未來系統(tǒng)的優(yōu)化思路進(jìn)行展望。
2開發(fā)工具及相關(guān)技術(shù)2.1PythonPython是一種解釋型、面向?qū)ο蟆討B(tài)數(shù)據(jù)類型的高級程序設(shè)計(jì)語言。Python的設(shè)計(jì)具有很強(qiáng)的可讀性,具有比其他語言更有特色語法結(jié)構(gòu)的特性。它的最大的優(yōu)勢之一是豐富的庫,并且在各個(gè)平臺的兼容性很好。開發(fā)者可以通過調(diào)用這些成熟的庫來迅速編寫程序,包括正則表達(dá)式、XML、HTML等。同時(shí)它是免費(fèi)、開源的,兼容大量的第三方庫,并且許多難以解決的問題都可以在各個(gè)論壇例如CSDN,博客園上找到相應(yīng)的解答[11]。因此,本系統(tǒng)采用Python作為開發(fā)最大的語言使用。2.2Pycharm集成開發(fā)工具PyCharm是一種PythonIDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時(shí)提高其效率的工具,比如調(diào)試、語法高亮、Project管理、代碼跳轉(zhuǎn)、智能提示、自動完成、單元測試、版本控制。此外,該IDE提供了一些高級功能,以用于支持Django框架下的專業(yè)Web開發(fā)。并且,PyCharm可以快速添加第三方庫,在開發(fā)過程中提供了極大的便利[12]。因此,本系統(tǒng)采用它作為開發(fā)環(huán)境。2.3ScrapyScrapy是適用于Python的一個(gè)快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點(diǎn)并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。它最大的優(yōu)點(diǎn)在于是一個(gè)框架,開發(fā)者可以根據(jù)自己的需求對其進(jìn)行修改,以達(dá)到自己的目的。并且Scrapy提供了很多強(qiáng)大的特性來使得爬取更為簡單高效,例如HTML,XML源數(shù)據(jù)的選擇及提取支持、提供了一系列可復(fù)用的過濾器、高擴(kuò)展性等[13]。因此,本系統(tǒng)采用Scrapy作為爬蟲框架來使用。2.4XpathXpath是一門在XML文檔中查找信息的語言。它包含一個(gè)標(biāo)準(zhǔn)函數(shù)庫,并且含有超過100個(gè)內(nèi)建的函數(shù)。這些函數(shù)用于字符串值、數(shù)值、日期和時(shí)間比較、節(jié)點(diǎn)和QName處理、序列處理、邏輯值等。通過Xpath,可以在爬取過程中迅速提取需要爬取的信息[14]。因此,本系統(tǒng)采用Xpath進(jìn)行信息的提取。2.5Redis數(shù)據(jù)庫Redis是完全開源的,遵守BSD協(xié)議,是一個(gè)高性能的key-value數(shù)據(jù)庫。它支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟的時(shí)候可以再次加載進(jìn)行使用。它擁有豐富的數(shù)據(jù)類型–Redis支持二進(jìn)制案例的Strings,Lists,Hashes,Sets及OrderedSets數(shù)據(jù)類型操作。并且它的性能極高,讀的速度可達(dá)到110000次/s,寫的速度可達(dá)到81000次/s[15]。因此,本系統(tǒng)采用Redis數(shù)據(jù)庫進(jìn)行分布式的搭建。2.6MongoDB數(shù)據(jù)庫MongoDB是一個(gè)基于分布式文件存儲的數(shù)據(jù)庫。它是一個(gè)面向文檔存儲的數(shù)據(jù)庫,操作起來比較簡單和容易,支持豐富的查詢表達(dá)式。查詢指令使用JSON形式的標(biāo)記,可輕易查詢文檔中內(nèi)嵌的對象及數(shù)組,支持各種編程語言:RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。并且允許在服務(wù)端執(zhí)行腳本,可以用Javascript編寫某個(gè)函數(shù),直接在服務(wù)端執(zhí)行,也可以把函數(shù)的定義存儲在服務(wù)端,下次直接進(jìn)行調(diào)用。因此,本系統(tǒng)采用MongoDB數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的存儲。2.7本章小結(jié)本章主要是對本系統(tǒng)的開發(fā)工具以及所用到的技術(shù)進(jìn)行了簡單介紹,首先介紹了開發(fā)工具Pycharm,然后介紹了系統(tǒng)開發(fā)所用語言Python,包括基于Python開發(fā)的Scrapy爬蟲框架,Xpath技術(shù)等。最后對分布式以及數(shù)據(jù)存儲所用的MongoDB數(shù)據(jù)庫和Redis數(shù)據(jù)庫進(jìn)行了相關(guān)介紹。3系統(tǒng)分析3.1系統(tǒng)設(shè)計(jì)目標(biāo)隨著互聯(lián)網(wǎng)時(shí)代的快速發(fā)展,人們獲取信息的方式逐漸多樣化。在網(wǎng)絡(luò)的快速普及下,越來越多的人都會選擇從互聯(lián)網(wǎng)上獲取自己所需要的信息。但是,隨著互聯(lián)網(wǎng)的高速發(fā)展下,互聯(lián)網(wǎng)上的信息也存在著數(shù)量繁多,范圍廣泛,重復(fù)率過高等問題。由于目前的搜索引擎往往通過模糊匹配的方式來顯示與用戶搜索內(nèi)容所相關(guān)的信息,導(dǎo)致部分用戶無法通過搜索引擎快速的得到他們所需求的特定內(nèi)容[2]。對于部分用戶的一些具體化、精細(xì)化的需求,網(wǎng)絡(luò)爬蟲應(yīng)運(yùn)而生。以新浪等新聞類網(wǎng)站的用戶作為服務(wù)對象,針對現(xiàn)在網(wǎng)絡(luò)爬蟲中存在的問題,開發(fā)一套基于Scrapy的網(wǎng)絡(luò)爬蟲,方便用戶對新聞類的信息進(jìn)行獲取,節(jié)省用戶的時(shí)間,提高新聞類信息的獲取效率。3.2系統(tǒng)可行性分析3.2.1技術(shù)可行性開發(fā)系統(tǒng)采用Windows10操作系統(tǒng),為了讓本系統(tǒng)可以跨平臺進(jìn)行搭建,系統(tǒng)開發(fā)選擇Python體系。爬蟲框架采用Scrapy框架進(jìn)行搭建,利用眾多技術(shù)進(jìn)行開發(fā),例如Xpath、HTML等。數(shù)據(jù)庫采用Redis和MongoDB,Redis做分布式,MongoDB做數(shù)據(jù)的存儲。本系統(tǒng)開發(fā)的是一套分布式爬蟲系統(tǒng),滿足給關(guān)系型數(shù)據(jù)庫的使用條件。所以采用Redis和MongoDB作為本系統(tǒng)的數(shù)據(jù)庫。3.2.2經(jīng)濟(jì)可行性在整個(gè)系統(tǒng)的實(shí)現(xiàn)過程中,設(shè)計(jì)與開發(fā)成本極低,投入的開發(fā)成員與物理?xiàng)l件極少。軟件方面,所采用的技術(shù)和軟件大部分為免費(fèi)開源版本,因此整套系統(tǒng)的開發(fā)成本幾乎為0;硬件方面,個(gè)人主機(jī)完全滿足本系統(tǒng)的開發(fā)需求,硬件配置方面建議,運(yùn)行內(nèi)存滿足8G及以上,處理器方面建議I5及以上。3.2.3操作可行性為了使用戶在操作該系統(tǒng)時(shí)方便、快捷且容易上手。在閱讀相關(guān)資料后,針對同類系統(tǒng)在使用過程中存在的一些問題,對該系統(tǒng)的設(shè)計(jì)進(jìn)行一些相應(yīng)的處理。頁面采用極簡思想進(jìn)行設(shè)計(jì)。降低頁面操作復(fù)雜度,使頁面簡潔直觀,方便用戶使用。通過將查詢部分直接通過NOSQL語句進(jìn)行處理,提高頁面響應(yīng)速度,提高用戶使用體驗(yàn)。本系統(tǒng)的目標(biāo)在于讓用戶能夠快速獲取到自己所需要的信息,所以在頁面設(shè)計(jì)上要求能夠直觀的顯示新聞內(nèi)容。通過顯示分類來引導(dǎo)用戶,且不需要用戶提供任何信息,做到每個(gè)人都可以便利地去使用本系統(tǒng)。3.3功能需求分析本系統(tǒng)重點(diǎn)在于對新聞類網(wǎng)站的爬取,根據(jù)特殊字段的設(shè)計(jì)來爬取所需要的內(nèi)容,過濾掉無用內(nèi)容。并通過redis數(shù)據(jù)庫進(jìn)行分布式的部署,使其他機(jī)器也可以對爬取到的鏈接進(jìn)行處理,爬取到相應(yīng)數(shù)據(jù)并上傳至redis,再將redis上的數(shù)據(jù)存入mongoDB數(shù)據(jù)庫來實(shí)現(xiàn)數(shù)據(jù)的保存。最后將數(shù)據(jù)庫的內(nèi)容顯示到網(wǎng)站上,實(shí)現(xiàn)可視化以供用戶們使用。根據(jù)上述系統(tǒng)的功能需求分析,設(shè)計(jì)系統(tǒng)整體功能模塊圖,如圖3-1所示。圖3-1系統(tǒng)功能結(jié)構(gòu)圖從圖3-1中可看出,本系統(tǒng)分為爬蟲系統(tǒng)和顯示系統(tǒng)2個(gè)子系統(tǒng),其中爬蟲系統(tǒng)主要實(shí)現(xiàn)數(shù)據(jù)采集、數(shù)據(jù)清洗、數(shù)據(jù)存儲功能。顯示系統(tǒng)主要實(shí)現(xiàn)數(shù)據(jù)顯示、數(shù)據(jù)統(tǒng)計(jì)分析功能(1)數(shù)據(jù)采集模塊該模塊重點(diǎn)在于對新浪網(wǎng)的網(wǎng)站結(jié)構(gòu)進(jìn)行分析,實(shí)現(xiàn)爬蟲策略,對內(nèi)容數(shù)據(jù)字段進(jìn)行設(shè)計(jì),實(shí)現(xiàn)數(shù)據(jù)的增量爬取、去重。通過Scrpay框架,實(shí)現(xiàn)對新浪等新聞類網(wǎng)站的爬取。(2)數(shù)據(jù)清洗模塊該模塊重點(diǎn)在于通過對特殊字段的設(shè)計(jì),過濾掉不需要的內(nèi)容,只爬取所需要的新聞內(nèi)容,降低爬蟲系統(tǒng)的負(fù)荷。通過Panda函數(shù)對數(shù)據(jù)進(jìn)行清洗和處理,并對對采集結(jié)果進(jìn)行格式轉(zhuǎn)換。(3)數(shù)據(jù)存儲模塊該模塊重點(diǎn)在于對爬取到的數(shù)據(jù)進(jìn)行存儲。根據(jù)爬蟲模塊爬取到的數(shù)據(jù),將url存儲在Redis數(shù)據(jù)庫中供爬蟲機(jī)器使用,爬蟲機(jī)器通過redis數(shù)據(jù)庫中的url進(jìn)行網(wǎng)站的爬取,實(shí)現(xiàn)分布式爬取技術(shù),并將爬取到的數(shù)據(jù)存儲進(jìn)本地mongoDB數(shù)據(jù)庫中實(shí)現(xiàn)數(shù)據(jù)的本地存儲。(4)數(shù)據(jù)統(tǒng)計(jì)分析模塊該模塊重點(diǎn)在于對爬取到的數(shù)據(jù)進(jìn)行分析統(tǒng)計(jì),將各個(gè)類別的新聞進(jìn)行分類。(5)數(shù)據(jù)顯示模塊該模塊重點(diǎn)在于實(shí)現(xiàn)數(shù)據(jù)的可視化分類顯示,顯示各個(gè)新聞的標(biāo)題以及詳細(xì)內(nèi)容。3.4本章小結(jié)本章對本系統(tǒng)的可行性分析以及需求分析進(jìn)行了介紹??尚行苑治鰪募夹g(shù)可行性、經(jīng)濟(jì)可行性、操作可行性上對本系統(tǒng)進(jìn)行介紹。需求分析從整個(gè)系統(tǒng)功能模塊出發(fā),分析了該系統(tǒng)所要完成的模塊以及各個(gè)模塊的功能,確保在開發(fā)過程中能夠滿足用戶需求。4系統(tǒng)設(shè)計(jì)4.1系統(tǒng)總體設(shè)計(jì)4.2.1系統(tǒng)邏輯設(shè)計(jì)通過功能需求分析可知,本系統(tǒng)是一個(gè)從互聯(lián)網(wǎng)上對新聞類網(wǎng)站的各類別新聞進(jìn)行抓取,并保存在數(shù)據(jù)庫中的一個(gè)系統(tǒng)。本系統(tǒng)邏輯結(jié)構(gòu)如圖4-1所示。圖4-1系統(tǒng)邏輯結(jié)構(gòu)4.2.2系統(tǒng)工作流程本系統(tǒng)無需登錄,直接打開頁面即可訪問所爬取到的所有數(shù)據(jù),爬取結(jié)束后會將爬取到的具體數(shù)據(jù)內(nèi)容顯示在界面,其工作流程如圖4-2所示:圖4-2系統(tǒng)工作流程4.2系統(tǒng)功能模塊4.2.1數(shù)據(jù)采集模塊本系統(tǒng)選取的網(wǎng)站為新浪網(wǎng),初始URL為/guide/。在確定好URL后,通過Python的Scrapy模塊向網(wǎng)站發(fā)送請求下頁面,用以獲得網(wǎng)頁源代碼的相關(guān)信息。獲得源碼信息后,通過特定字段的設(shè)計(jì)與Xpath技術(shù)過濾掉不需要的內(nèi)容,只采集特定的內(nèi)容字段。4.2.2數(shù)據(jù)清洗模塊在對網(wǎng)頁的指定數(shù)據(jù)進(jìn)行采集后,本系統(tǒng)通過數(shù)據(jù)清洗模塊對數(shù)據(jù)進(jìn)行清洗,主要使用的方法為URL去重。本系統(tǒng)URL去重的主要實(shí)現(xiàn)思路為:通過數(shù)據(jù)庫的創(chuàng)建將已爬取到的URL保存下來,當(dāng)新的URL被爬取時(shí),通過與數(shù)據(jù)庫中的URL對比來判斷是否爬取到相同的頁面。如果相同,就將該URL丟棄,繼續(xù)爬取下一個(gè)并進(jìn)行對比;如果不同,就將該URL保存下來,加入隊(duì)列中供爬蟲系統(tǒng)進(jìn)行解析。4.3數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫作為存儲內(nèi)容的工具,是系統(tǒng)的核心部分。本系統(tǒng)采用MongoDB數(shù)據(jù)庫對數(shù)據(jù)庫進(jìn)行設(shè)計(jì),通過設(shè)計(jì)好的字段直接將爬取到的相應(yīng)字段的內(nèi)容存儲進(jìn)MongoDB數(shù)據(jù)庫中。為了提高信息的提取性能,應(yīng)該合理的對數(shù)據(jù)庫進(jìn)行設(shè)計(jì)。本系統(tǒng)的具體思路是通過Python中的pymongo模塊對MongoDB數(shù)據(jù)庫進(jìn)行操作。其執(zhí)行過程如圖4-3所示:圖4-3數(shù)據(jù)庫操作過程本系統(tǒng)創(chuàng)建的數(shù)據(jù)庫名為HN,在該數(shù)據(jù)庫下創(chuàng)建了用于保存數(shù)據(jù)的集合HN2,集合HN2的結(jié)構(gòu)如表4-1所示:序號字段名數(shù)據(jù)類型備注1_idobjectId唯一標(biāo)識2article_urlString文章的鏈接3article_titleString文章的標(biāo)題4article_contentString文章的內(nèi)容5parent_titleString大類的標(biāo)題6parent_urlString大類的鏈接7subtitleString小類的標(biāo)題8suburlString小類的鏈接9subpathString子類路徑4.3本章小結(jié)本章根據(jù)需求分析中確定的功能模塊,對系統(tǒng)中的邏輯設(shè)計(jì)以及工作流程進(jìn)行了介紹,以及對數(shù)據(jù)庫的設(shè)計(jì),對數(shù)據(jù)的存儲進(jìn)行了相應(yīng)的介紹。5系統(tǒng)實(shí)現(xiàn)5.1爬蟲模塊本系統(tǒng)的爬蟲功能實(shí)現(xiàn)如圖5-1所示:圖5-1爬蟲模塊功能實(shí)現(xiàn)流程圖5.1.1數(shù)據(jù)采集模塊本系統(tǒng)選取的網(wǎng)站為“新浪網(wǎng)”,通過分析該網(wǎng)站結(jié)構(gòu),對頁面進(jìn)行相應(yīng)的爬取。具體爬取手段為通過Xpath技術(shù)和正則表達(dá)式獲取大類的標(biāo)題以及鏈接,接下來獲取小類的標(biāo)題和鏈接。然后爬取所有大類下的連接以及小類下的鏈接,判斷該小類屬于哪一個(gè)大類,對所有新聞進(jìn)行具體分類,最后處理爬取到的所有鏈接,獲得爬取內(nèi)容。具體實(shí)現(xiàn)頁面如圖5-2所示:圖5-2數(shù)據(jù)采集模塊實(shí)現(xiàn)5.2.2數(shù)據(jù)清洗模塊在爬取到頁面的特定內(nèi)容后,本系統(tǒng)通過URL去重的方式對數(shù)據(jù)進(jìn)行清洗,通過創(chuàng)建數(shù)據(jù)庫采集URL隊(duì)列,將新爬取的URL與隊(duì)列中的URL進(jìn)行對比來判斷頁面是否重復(fù),如果重復(fù),則丟棄該URL,繼續(xù)爬取下一個(gè),若不重復(fù),則將該URL放入U(xiǎn)RL隊(duì)列中以供處理。頁面URL隊(duì)列如圖5-3所示:圖5-3數(shù)據(jù)清洗模塊實(shí)現(xiàn)5.2.3數(shù)據(jù)存儲模塊通過分析網(wǎng)站結(jié)構(gòu),設(shè)計(jì)內(nèi)容字段對新聞網(wǎng)站進(jìn)行爬取,對爬取到的結(jié)果進(jìn)行清洗與處理并將最終獲得的內(nèi)容存儲進(jìn)本地?cái)?shù)據(jù)庫中。數(shù)據(jù)存儲模塊采用MongoDB數(shù)據(jù)庫進(jìn)行存儲,采用Python中的pymongo模塊對MongoDB數(shù)據(jù)庫進(jìn)行操作,通過設(shè)計(jì)好的字段直接將爬取到的相應(yīng)字段的內(nèi)容存儲進(jìn)MongoDB數(shù)據(jù)庫中。存儲內(nèi)容如圖5-4所示:圖5-4爬取內(nèi)容界面5.2可視化模塊5.2.1頁面統(tǒng)計(jì)展示模塊通過jsp對爬取到的各類別的內(nèi)容數(shù)進(jìn)行統(tǒng)計(jì),并根據(jù)所有分類進(jìn)行索引的創(chuàng)建,顯示在頁面的左側(cè)邊欄內(nèi)。通過點(diǎn)擊分類,顯示該類別內(nèi)容的總數(shù)以及對應(yīng)的文章標(biāo)題。具體統(tǒng)計(jì)展示如圖5-5所示圖5-5頁面統(tǒng)計(jì)展示界面5.2.2新聞內(nèi)容模塊新聞內(nèi)容模塊主要負(fù)責(zé)新聞的詳細(xì)顯示,通過簡潔的界面方便用戶進(jìn)行新聞的查看。通過點(diǎn)擊新聞標(biāo)題,跳轉(zhuǎn)至對應(yīng)的詳細(xì)內(nèi)容頁面,通過點(diǎn)擊返回上一級即可返回至標(biāo)題頁面。內(nèi)容顯示頁面如圖5-6所示。圖5-6新聞詳細(xì)內(nèi)容頁面5.3本章小結(jié)本章主要對系統(tǒng)的實(shí)現(xiàn)過程進(jìn)行了介紹,首先對爬蟲模塊進(jìn)行了介紹,然后對系統(tǒng)的可視化功能進(jìn)行了介紹,包括分類功能的實(shí)現(xiàn),各個(gè)分類數(shù)據(jù)量統(tǒng)計(jì)的實(shí)現(xiàn)以及新聞詳細(xì)內(nèi)容的實(shí)現(xiàn)。6系統(tǒng)測試6.1測試目的軟件測試是人工的,或通過使用工具來自動的運(yùn)行被測軟件系統(tǒng),或靜態(tài)檢查被測軟件系統(tǒng)的過程,其目的在于校驗(yàn)被測軟件系統(tǒng)是否滿足需求,或要弄清楚實(shí)際的系統(tǒng)輸出與預(yù)期系統(tǒng)輸出之間的差異。測試的目的在于及時(shí)發(fā)現(xiàn)軟件中存在的錯誤或者缺陷,通過修復(fù)問題與缺陷使程序能夠符合設(shè)計(jì)要求。6.2測試方法本系統(tǒng)采用黑盒測試與白盒測試對系統(tǒng)進(jìn)行測試,采用的測試方法有單元測試、集成測試、系統(tǒng)測試。在軟件的開發(fā)過程中,會對每個(gè)完成的功能模塊進(jìn)行單元測試,通過系統(tǒng)實(shí)際輸出與預(yù)期輸出的對比來判斷該模塊是否正確。當(dāng)各個(gè)單元的測試完成后,需要對單元進(jìn)行集成,并進(jìn)行相應(yīng)的集成測試,通過集成測試來檢查各個(gè)單元間的集成是否符合需求。集成測試完成后要對系統(tǒng)進(jìn)行部署,并進(jìn)行系統(tǒng)測試,來判斷該系統(tǒng)在各類環(huán)境下能否正常運(yùn)行。整個(gè)系統(tǒng)完成開發(fā)后,則需要通過黑盒測試法來對系統(tǒng)的整個(gè)功能進(jìn)行測試。黑盒測試相當(dāng)于把系統(tǒng)看作一個(gè)黑盒子,不考慮其內(nèi)部邏輯結(jié)構(gòu)以及代碼。只通過對程序輸入來獲得輸出,并將實(shí)際輸出與預(yù)期輸出進(jìn)行比較,來判斷該功能是否符合需求,從而發(fā)現(xiàn)系統(tǒng)中存在的錯誤與缺陷。6.3測試用例可視化測試。測試系統(tǒng)的可視化模塊能否正常運(yùn)行以及能否達(dá)到預(yù)期需求。測試數(shù)據(jù)見表6-1。表6-1可視化測試用例表用例編號用例名稱測試過程期望結(jié)果實(shí)際結(jié)果結(jié)果對比001收藏分類顯示點(diǎn)擊收藏分類顯示收藏分類下的二級分類與收藏類新聞顯示收藏分類下的二級分類與收藏類新聞符合期望002圖片分類顯示點(diǎn)擊圖片分類顯示圖片分類下的二級分類與圖片類新聞顯示圖片分類下的二級分類與圖片類新聞符合期望003教育分類顯示點(diǎn)擊教育分類顯示教育分類下的二級分類與教育類新聞顯示教育分類下的二級分類與教育類新聞符合期望004旅游分類顯示點(diǎn)擊旅游分類顯示旅游分類下的二級分類與旅游類新聞顯示旅游分類下的二級分類與旅游類新聞符合期望005游戲分類顯示點(diǎn)擊游戲分類顯示游戲分類下的二級分類與游戲類新聞顯示游戲分類下的二級分類與游戲類新聞符合期望006科技分類顯示點(diǎn)擊科技分類顯示科技分類下的二級分類與科技類新聞顯示科技分類下的二級分類與科技類新聞符合期望007佛學(xué)分類顯示點(diǎn)擊佛學(xué)分類顯示佛學(xué)分類下的二級分類與佛學(xué)類新聞顯示佛學(xué)分類下的二級分類與佛學(xué)類新聞符合期望008女性分類顯示點(diǎn)擊女性分類顯示女性分類下的二級分類與女性類新聞顯示女性分類下的二級分類與女性類新聞符合期望009時(shí)尚分類顯示點(diǎn)擊時(shí)尚分類顯示時(shí)尚分類下的二級分類與時(shí)尚類新聞顯示時(shí)尚分類下的二級分類與時(shí)尚類新聞符合期望010拍賣分類顯示點(diǎn)擊收藏分類下的拍賣顯示拍賣類新聞的標(biāo)題顯示拍賣類新聞的標(biāo)題符合期望011外語分類顯示點(diǎn)擊教育分類下的外語顯示外語類新聞的標(biāo)題顯示外語類新聞的標(biāo)題符合期望012會計(jì)分類顯示點(diǎn)擊教育分類下的會計(jì)顯示會計(jì)類新聞的標(biāo)題顯示會計(jì)類新聞的標(biāo)題符合期望013考研分類顯示點(diǎn)擊教育分類下的考研顯示考研類新聞的標(biāo)題顯示考研類新聞的標(biāo)題符合期望014解夢分類顯示點(diǎn)擊星座分類下的解夢顯示解夢類新聞的標(biāo)題顯示解夢類新聞的標(biāo)題符合期望015早教分類顯示點(diǎn)擊育兒分類下的早教顯示早教類新聞的標(biāo)題顯示早教類新聞的標(biāo)題符合期望016基金分類顯示點(diǎn)擊財(cái)經(jīng)分類下的基金顯示基金類新聞的標(biāo)題顯示基金類新聞的標(biāo)題符合期望017股票分類顯示點(diǎn)擊股票分類下的拍賣顯示股票類新聞的標(biāo)題顯示股票類新聞的標(biāo)題符合期望018黃金分類顯示點(diǎn)擊財(cái)經(jīng)分類下的黃金顯示黃金類新聞的標(biāo)題顯示黃金類新聞的標(biāo)題符合期望019詳細(xì)內(nèi)容顯示點(diǎn)擊新聞標(biāo)題顯示新聞詳細(xì)內(nèi)容顯示新聞詳細(xì)內(nèi)容符合期望6.4本章小結(jié)本章主要對系統(tǒng)的功能進(jìn)行了詳細(xì)測試,通過對期望輸出與實(shí)際輸出的對比,確定本系統(tǒng)的功能在測試的過程中沒有發(fā)現(xiàn)問題,目前的業(yè)務(wù)邏輯可以實(shí)現(xiàn)本系統(tǒng)所需要完成的功能。網(wǎng)頁顯示直觀,用戶可以通過簡單的點(diǎn)擊,獲取到想要的新聞內(nèi)容。7總結(jié)與展望7.1總結(jié)隨著互聯(lián)網(wǎng)的快速發(fā)展,越來越多的人通過互聯(lián)網(wǎng)獲取每日新聞內(nèi)容。但是,隨著互聯(lián)網(wǎng)的高速發(fā)展下,互聯(lián)網(wǎng)上的信息也存在著數(shù)量繁多,范圍廣泛,重復(fù)率過高等問題。由于目前的搜索引擎往往通過模糊匹配的方式來顯示與用戶搜索內(nèi)容所相關(guān)的信息,導(dǎo)致部分用戶無法通過搜索引擎快速的得到他們所需求的特定內(nèi)容。對于部分用戶的一些具體化、精細(xì)化的需求,就需要這樣一個(gè)網(wǎng)絡(luò)爬蟲,可以實(shí)時(shí)爬取新聞類網(wǎng)站的信息,并根據(jù)爬取的內(nèi)容將新聞進(jìn)行分類,通過分類進(jìn)行展示并統(tǒng)計(jì)出各個(gè)分類下的新聞總數(shù),使用戶可以快速獲取到想要的新聞內(nèi)容,大大的減少了用戶查詢新聞的時(shí)間,使整個(gè)新聞瀏覽過程變得非常便利。本文的主要工作內(nèi)容如下:(1)以爬蟲系統(tǒng)的研究背景為起點(diǎn),對國內(nèi)外現(xiàn)狀進(jìn)行研究,借鑒一些已有的研究成果與相關(guān)文獻(xiàn),通過分析已有成果所存在的缺陷來確定研究的目標(biāo)與具體內(nèi)容。(2)對本系統(tǒng)開發(fā)所用到的技術(shù)進(jìn)行大概介紹,并詳細(xì)分析這些技術(shù)所實(shí)現(xiàn)的功能,選擇最適合的技術(shù)進(jìn)行系統(tǒng)的開發(fā)。(3)分別從經(jīng)濟(jì)可行性、技術(shù)可行性以及操作可行性上對本系統(tǒng)進(jìn)行分析。對爬蟲模塊、數(shù)據(jù)清洗模塊、數(shù)據(jù)存儲模塊、數(shù)據(jù)統(tǒng)計(jì)分析模塊、數(shù)據(jù)顯示模塊進(jìn)行詳細(xì)分析。在此基礎(chǔ)上對本系統(tǒng)的功能與需求進(jìn)行分析,提出了本系統(tǒng)的各個(gè)模塊的功能的詳細(xì)信息。(4)在系統(tǒng)設(shè)計(jì)上采用三層架構(gòu)對本系統(tǒng)進(jìn)行搭建,并對各層的功能進(jìn)行了概要介紹。對數(shù)據(jù)庫的設(shè)計(jì)進(jìn)行了介紹。(5)在系統(tǒng)實(shí)現(xiàn)部分中,對系統(tǒng)的各個(gè)功能模塊進(jìn)行了介紹,并對各個(gè)模塊的實(shí)現(xiàn)思路以及所用到的技術(shù)進(jìn)行了簡要的介紹。(6)在系統(tǒng)測試部分,通過對本系統(tǒng)的分類顯示功能,分類統(tǒng)計(jì)功能,標(biāo)題顯示功能以及詳細(xì)內(nèi)容顯示功能進(jìn)行測試,確認(rèn)本系統(tǒng)滿足設(shè)計(jì)要求,符合預(yù)期目標(biāo)。7.2展望隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)站的日益增多以及用戶對于通過網(wǎng)絡(luò)獲取信息的需求,設(shè)計(jì)本系統(tǒng)來完成對新聞類網(wǎng)站的爬取與顯示,使用戶能夠更快速的獲取到自己想要的新聞內(nèi)容。但由于本系統(tǒng)在開發(fā)階段存在的時(shí)間以及人力方面的問題,還存在一些不足,在后續(xù)的開發(fā)中,計(jì)劃能夠完成以下內(nèi)容。(1)爬取網(wǎng)站擴(kuò)充對于一個(gè)新聞類網(wǎng)站的爬蟲系統(tǒng)來說,不應(yīng)只將爬取對象設(shè)計(jì)為單個(gè)網(wǎng)站,應(yīng)該要通過合適的字段設(shè)計(jì),能夠爬取到各類新聞網(wǎng)站的新聞內(nèi)容,如華商網(wǎng),人民日報(bào)等,這樣才能夠滿足更多用戶的需求。(2)功能擴(kuò)充對于本系統(tǒng)的可視化部分還可以有更多的功能來使它更加完善,例如增加搜索欄、統(tǒng)計(jì)每天
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025專業(yè)倉儲合同
- 2025國英置業(yè)合同成本手冊
- 2025年度農(nóng)村私人魚塘承包與綠色漁業(yè)發(fā)展合作合同
- 二零二五年度農(nóng)產(chǎn)品品牌營銷委托收購合作協(xié)議3篇
- 二零二五年度車輛未過戶期間的車輛事故免責(zé)條款合同3篇
- 二零二五年度火鍋店轉(zhuǎn)讓及底料供應(yīng)協(xié)議3篇
- 二零二五年度執(zhí)業(yè)藥師藥品市場營銷推廣服務(wù)合同3篇
- 2025年度特種水產(chǎn)品養(yǎng)殖項(xiàng)目合伙經(jīng)營合同3篇
- 二零二五年度特色小鎮(zhèn)建設(shè)住房合作協(xié)議3篇
- 2025年度家庭農(nóng)場規(guī)模化養(yǎng)豬場整體轉(zhuǎn)讓合同3篇
- 腹腔鏡全胃切除手術(shù)配合
- 2024-2030年中國非物質(zhì)文化遺產(chǎn)市場前景調(diào)研及投資風(fēng)險(xiǎn)分析報(bào)告
- 酒店員工人事制度培訓(xùn)
- 2023年山西省公務(wù)員錄用考試《行測》真題及答案解析
- 醫(yī)美整形退款協(xié)議書范本下載
- 國培培訓(xùn)成果匯報(bào)
- 北師大版(三起)(2024)三年級上冊英語全冊教案(按課設(shè)計(jì)共23課)
- 博物館多功能廳功能改造方案
- 外墻真石漆施工后期維護(hù)方案
- 工會上墻制度
- 與信仰對話 課件-2024年入團(tuán)積極分子培訓(xùn)
評論
0/150
提交評論