freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于java的搜索引擎設(shè)計(jì)與實(shí)現(xiàn)本科(設(shè)計(jì))word格式(參考版)

2024-12-11 09:41本頁面
  

【正文】 我在畢業(yè)設(shè)計(jì)期間,得到 指導(dǎo)教師林培光老師 的精心指導(dǎo), 林老師 治學(xué)嚴(yán)謹(jǐn),學(xué)。由于本人對(duì)程序開發(fā)也只是處在一個(gè)起步階段,還有很多工作有待在以后的學(xué)習(xí)和研究中去實(shí)現(xiàn)。 }catch(IOException e){ } } 八、結(jié)束語 本論文對(duì) java 實(shí)現(xiàn)簡(jiǎn)單的搜索引擎做了比較詳細(xì)的介紹,對(duì) inter 原理進(jìn)行了簡(jiǎn)要的說明,讓讀者能輕松了解 工作機(jī)制,以及網(wǎng)絡(luò)爬蟲系統(tǒng)統(tǒng)是如何實(shí)現(xiàn)網(wǎng)頁的抓取的。 (bufferString)。 try { PrintWriter pw = new PrintWriter( new FileWriter( path+fileName+.txt ) )。} } return true。i++) { String disallow = (String)(i)。 for(int i= 0。 } } }catch(Exception e) {return true。//去掉注釋 } disallowPath = ()。//獲取不允許訪問路徑 // 檢查是否有注釋 int mentIndex = ()。 // 讀 robot文件,創(chuàng)建不允許訪問的路徑列表 String line。 山東財(cái)經(jīng)大學(xué)學(xué)士學(xué)位論文 19 if(disallowList == null) { disallowList = new ArrayList()。//獲取給出 RUL的主機(jī) } catch(NullPointerException e) { } // 獲取主機(jī)不允許搜索的 URL緩存 ArrayList disallowList = (ArrayList)(host)。如: Useragent: * Disallow: /admin/ 后臺(tái)管理文件 Disallow: /require/ 程序文件 Disallow: /attachment/ 附件 Disallow: /images/ 圖片 Disallow: /data/ 數(shù)據(jù)庫文件 Disallow: /template/ 模板文件 Disallow: /css/ 樣式表文件 Disallow: /lang/ 編碼文件 Disallow: /script/ 腳本文件 允許所有搜索引擎訪問網(wǎng)站的所有部分或者建立一個(gè)空白的文本文檔,命名為 Useragent: * Disallow: // 檢測(cè) robot是否允許訪問給出的 URL. private boolean isRobotAllowed(URL urlToCheck) { String host = null。 必須放置在一個(gè)站點(diǎn)的根目錄下,而且文件名必須全部小寫。 文件告訴蜘蛛程序在服務(wù)器上什么文件是可以被查看的。 } 山東財(cái)經(jīng)大學(xué)學(xué)士學(xué)位論文 18 continue。 String gt20kbLinkAction = getTimeStamp()。 } //對(duì)頁面大小的限制: int size。 } } //鏈接規(guī)格化 URL verifiedLink = verifyUrl(link)。 } // 跳過那些已經(jīng)處理的鏈接 . if ((link)) { continue。amp。 } //跳過腳本鏈接 if(().indexOf(javascript)!=1) { continue。) { continue。 if((0)==39。 //跳過空鏈接 if(()1) { continue。 } return (linkList)。 String urlActionTime = getTimeStamp()。 創(chuàng)建數(shù)組 linkList存放匹配到的字符串 ArrayList linkList = new ArrayList()。 } 另一種方法可利用正則表達(dá)式,通過 pattern類、 matcher類實(shí)現(xiàn),正則表達(dá)式功能強(qiáng)大能得到任何想得到的網(wǎng)頁數(shù)據(jù)如獲得鏈 接、標(biāo)題等內(nèi)容: string strRef =title([^]*)/title 具體如下, 設(shè)置查找的匹配模式 Pattern p =(a\\s+href\\s*=\\s*\?(.*?)[\|],)。 addResult(notHostLinkAction, 鏈接不屬于主機(jī) ,verifiedLink)。 } if(!(startHost)) { if(! (verifiedLink)) { (verifiedLink)。 } String pageHost = ().toLowerCase()。 int indexofpoint。如果為站內(nèi) URL則加入到緩存隊(duì)列。一般情況下同一網(wǎng)站內(nèi)的 URL的 host名因該是一致的。 // 如果 url中包含以下 字符串,則不加入隊(duì)列 if (().contains(.css) || ().contains(.rar) || () || (.zip) || (javascript)) { return false。像這種情況就直接拋棄這些 URLs。 link = } } 當(dāng)?shù)玫竭@些完整的 URL 地址以后,需要對(duì)其進(jìn)行過濾。/39。)==1) { link = +/+link。 if((39。 山東財(cái)經(jīng)大學(xué)學(xué)士學(xué)位論文 15 相對(duì)地址與絕對(duì)地址的處理: if((://)==1) { //處理絕對(duì)地址 if((./)) { link= ())。根據(jù)相對(duì)地址的概念, ../為返回上一層,所以可以得到這個(gè)相對(duì)地址的絕對(duì)地址,如果它包含完整的協(xié)議信息,域名地址。如果截取出來的 URL為 ../mlist/,即為相對(duì) 地址。 } (linklist)。 if (isSiteInsideUrl(url, urlQueueManager)) { if (!(url)) { (url)。 url = (0, (\))。\39。 while (haveHref) { html_text = ((href=) + 5)。 String url = 。 下面是 href=后面接續(xù)雙引號(hào)情況的 JAVA代碼,其他情況的代碼方式相同。這個(gè)地方 href=沒有接續(xù)任何符號(hào),所以當(dāng)沒有發(fā)現(xiàn)單引號(hào)或雙引號(hào)的時(shí)候,可以判斷為這種情況。繼續(xù)檢索 href=標(biāo)簽,判斷它的第 i+1 位為一個(gè)單引號(hào),所以又截取 i+1 位到第 2 個(gè)單引號(hào)的位置。之間的這段字符串即為 URL。 山東財(cái)經(jīng)大學(xué)學(xué)士學(xué)位論文 14 a href= class=focu 首頁 /aa href= ’ movie_2021/mlist/ ’ target=_self 內(nèi)陸片 /aa href=movie_2021/mlist/ target=_self 港 臺(tái) 片 /aa href=movie_2021/mlist/ 日韓片 /a 例如上面那段 HTML代碼。對(duì)于一個(gè) HTML代碼,尋找其中的 href=字符串,然后記 錄它的下標(biāo) i 判斷下標(biāo) i+1位置上的字符是雙引號(hào),單引號(hào)或者兩者皆不是,然后選擇對(duì)應(yīng)的字符作為截取 URL的終止標(biāo)記。 } } 這個(gè)方法是通過調(diào)用 JAVA 里面的 URL 這個(gè)類,可以用給定的 URL 構(gòu)造這個(gè)類的一個(gè)實(shí)例,然后通過 openStream()這個(gè)方法 得到 HTML代碼的數(shù)據(jù)流,然后再一行一行地把數(shù)據(jù)流轉(zhuǎn)換成 String字符串,再用 StringBuffer將這些字符串拼接成一個(gè)完整的 HTML代碼。 } return ()。 StringBuffer pageBuffer = new StringBuffer()。 (二)獲取網(wǎng)頁實(shí)現(xiàn) private String downloadPage(URL pageUrl) { try { BufferedReader reader = new BufferedReader(new InputStreamReader(()))。當(dāng)?shù)玫饺蝿?wù) URL以后,會(huì)通過這個(gè) URL得到對(duì)應(yīng)的 HTML代碼。 if(().hasNext()) 山東財(cái)經(jīng)大學(xué)學(xué)士學(xué)位論文 13 { try{ url = (String)().next()。amp。因?yàn)?URL隊(duì)列會(huì)出現(xiàn)為空的 情況。 } } } 該方法里定義了一個(gè)循環(huán),這個(gè)線程會(huì)重復(fù)地執(zhí)行爬蟲動(dòng)作。 } ArrayList links=retrieveLinks(verifiedUrl,pageContents,crawledList,notHostLink,gt20kbList)。amp。 i++。 addResult(processUrlActionTime,處理 ,url)。 //Download the page at the given Url String pageContents = downloadPage(verifiedUrl)。 updateStats(url,(),(),maxUrls, ize(),())。 addResult(verifiedUrlActionTime,校驗(yàn) ,url)。 URL verifiedUrl = verifyUrl(url)。 if(().hasNext()) { try{ url = (String)().next()。 () 0) { if(maxUrls != 1) { if(()== maxUrls) { break。 while(crawling amp。 addResult(urlActionTime,添加到隊(duì)列 ,startUrl)。 try { (2021)。 } })。 crawling = false。 private void crawl(final String logFile,final String startUrl,final int maxUrls) { Thread thread = new Thread(new Runnable() { public void run() {crawling = true。 (四)主要存儲(chǔ)結(jié)構(gòu) HashSet toCrawlList:用來保存待爬取的 url HashSet crawledList:用來保存已經(jīng)訪問的 url 七、詳細(xì)設(shè)計(jì) (一)爬蟲實(shí)現(xiàn) 圖 71 爬蟲工作流程 實(shí)現(xiàn)線程在 java中有兩種方法:一種是直接繼承 Thread類;一種是實(shí)現(xiàn) Runnable 接開始 獲取 URL 提取鏈接 加入隊(duì)列 隊(duì)列空否 否 結(jié)束 山東財(cái)經(jīng)大學(xué)學(xué)士學(xué)位論文 11 口。 isRobotAllowed():讀 ,檢測(cè) robot是否允許訪問給出的 URL。 retrieveLinks():用來抽取出網(wǎng)頁中的鏈接,同時(shí)對(duì)抽取的鏈接進(jìn)行過濾。 crawlAction():具體構(gòu)架爬蟲過程。 (5) 信息輸出。再判斷這些 URL是否已經(jīng)被下載到,如果沒有則加入到 URL等待隊(duì)列。然后根據(jù) URL下載網(wǎng)頁,然后解析網(wǎng)頁,獲取超鏈接 URLs。 (2) 創(chuàng)建爬蟲線程,啟動(dòng)爬蟲線程。 對(duì)于該項(xiàng)目,資本很少,基本就是自己開發(fā)一個(gè)系統(tǒng),所以對(duì)于經(jīng)濟(jì)是可行的。 六、概要設(shè)計(jì) (一)可行性論述 對(duì)于網(wǎng)絡(luò)上的資源,這些都是免費(fèi)發(fā)布的,該設(shè)計(jì)獲取我們能看到的東西,也就是所見所得,發(fā)布抓取下來的信息,這樣可以幫助用戶找到他們想要的信息。 (四)輸入輸出要求 本設(shè)計(jì)輸入輸出要求: (1)輸入,搜索的關(guān)鍵字 (2)處理,查詢 (3)輸出, Web 頁面上顯示搜索信息。 (三)性能需求 本設(shè)計(jì)性能需求 :(1)精度 ,對(duì)收集到的信息需要一定的完整性,并寫入收集的存儲(chǔ)區(qū)里,對(duì)搜索出的內(nèi)容需要包含有關(guān)鍵字信息 (2)網(wǎng)絡(luò)不夠快 ,對(duì)于這個(gè)性能瓶頸,我們可以通過使用更快的寬帶,比如 100Mb共享,而不使用一般的撥號(hào)上網(wǎng)
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1