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

正文內(nèi)容

網(wǎng)絡(luò)爬蟲的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文-wenkub

2023-07-08 02:26:43 本頁面
 

【正文】 ..............2 JAVA 線程模型 .............................................2 創(chuàng)建線程 ..................................................3 JAVA 中的線程的生命周期 ....................................4 JAVA 線程的結(jié)束方式 ........................................4 多線程同步 ................................................5 URL 消重 .......................................................5 URL 消重的意義 .............................................5 網(wǎng)絡(luò)爬蟲 URL 去重儲存庫設(shè)計(jì) ................................5 LRU 算法實(shí)現(xiàn) URL 消重 .......................................7 URL 類訪問網(wǎng)絡(luò) .................................................8  爬行策略淺析 .................................................8 寬度或深度優(yōu)先搜索策略 .....................................8 聚焦搜索策略 ..............................................9 基于內(nèi)容評價(jià)的搜索策略 .....................................9 基于鏈接結(jié)構(gòu)評價(jià)的搜索策略 ...............................10 基于鞏固學(xué)習(xí)的聚焦搜索 ...................................11 基于語境圖的聚焦搜索 .....................................11第三章 系統(tǒng)需求分析及模塊設(shè)計(jì) ......................................13 系統(tǒng)需求分析 .................................................13 SPIDER 體系結(jié)構(gòu) ...............................................13 各主要功能模塊(類)設(shè)計(jì) .....................................14 SPIDER 工作過程 ...............................................14第四章 系統(tǒng)分析與設(shè)計(jì) ..............................................16 SPIDER 構(gòu)造分析 ...............................................16 爬行策略分析 .................................................17 URL 抽取,解析和保存 ..........................................18 URL 抽取 ..................................................18 URL 解析 ..................................................19 URL 保存 ..................................................19第五章 系統(tǒng)實(shí)現(xiàn) ....................................................21 實(shí)現(xiàn)工具 .....................................................21 爬蟲工作 .....................................................21 URL 解析 ......................................................22 URL 隊(duì)列管理 ..................................................24 URL 消重處理 ..............................................24 URL 等待隊(duì)列維護(hù) ..........................................26 數(shù)據(jù)庫設(shè)計(jì) ...............................................27第六章 系統(tǒng)測試 ....................................................29第七章 結(jié)論 ........................................................32參考文獻(xiàn) ...........................................................33致謝 ...............................................................34外文資料原文 .......................................................35譯文 ...............................................................51第一章 引言1第一章 引言隨著互聯(lián)網(wǎng)的飛速發(fā)展,網(wǎng)絡(luò)上的信息呈爆炸式增長。爬蟲程序就是用來搜集網(wǎng)頁的程序。此外, 還有根據(jù)概率論進(jìn)行可用 Web 頁的數(shù)量估算, 用于評估互聯(lián)網(wǎng) Web 規(guī)模的抽樣爬蟲程序 。爬蟲程序的實(shí)現(xiàn)策略,運(yùn)行效率直接影響搜索引擎的搜索結(jié)果。本文通過 JAVA 語言實(shí)現(xiàn)一個(gè)基于廣度優(yōu)先偏歷算法的多線程爬蟲程序。所謂多進(jìn)程,就是讓系統(tǒng)(好像)同時(shí)運(yùn)行多個(gè)程序。事實(shí)的真相是,對于一個(gè) CPU 而言,它在某一個(gè)時(shí)間點(diǎn)上,只能執(zhí)行一個(gè)程序。而對于 CPU 而言,它的時(shí)間是以毫秒來計(jì)算的,從我們?nèi)庋劭磥恚鼈兙褪且粋€(gè)連續(xù)的動作。多線程和多進(jìn)程有什么區(qū)別呢?對于進(jìn)程來說,每個(gè)進(jìn)程都有自己的一組完整的變量,而線程則共享相同的數(shù)據(jù)。JAVA 的線程是通過 類來實(shí)現(xiàn)的,它內(nèi)第二章 相關(guān)技術(shù)介紹3部實(shí)現(xiàn)了虛擬 CPU 的功能,能夠接收和處理傳遞給它的代碼和數(shù)據(jù),并提供了獨(dú)立的運(yùn)行控制功能。比如,用于自動垃圾收集的線程,對象終止或者其他的 JVM 處理任務(wù)相關(guān)的線程。Thread(Runnable target)。Thread(String name)。通常,我們可以將一個(gè)類繼承 Thread,然后,覆蓋 Thread 中的 run()方法,這樣讓這個(gè)類本身也就成了線程。 創(chuàng)建線程方式二通過實(shí)現(xiàn) Runnable 接口并實(shí)現(xiàn)接口中定義的唯一方法 run(),可以創(chuàng)建一個(gè)線程。其中,Running 狀態(tài)并非屬于 JAVA 規(guī)范中定義的線程狀態(tài),也就是說,在 JAVA 規(guī)范中,并沒有將運(yùn)行(Running)狀態(tài)真正的設(shè)置為一個(gè)狀態(tài),它屬于可運(yùn)行狀態(tài)的一種。當(dāng)線程的 run 方法運(yùn)行完畢,線程將被拋棄,進(jìn)入死亡狀態(tài)。 JAVA 線程的結(jié)束方式線程會以以下三種方式之一結(jié)束:線程到達(dá)其 run()方法的末尾;第二章 相關(guān)技術(shù)介紹5線程拋出一個(gè)未捕獲到的 Exception 或 Error;另一個(gè)線程調(diào)用一個(gè) Deprecated 的 stop()方法。多數(shù) JAVA 同步是以對象鎖定為中心的。這樣使它在共享的線程之間可以相互協(xié)調(diào)。 URL 消重 URL 消重的意義在 SPIDER 系統(tǒng)實(shí)際運(yùn)行的過程中,每秒下載的 10 個(gè)頁面中,分析的 URL大多數(shù)是重復(fù)的,實(shí)際上新的 URL 才幾個(gè)。其關(guān)鍵在于允許一個(gè)作業(yè)只裝入部分的頁或段就可以啟動運(yùn)行,當(dāng)作業(yè)運(yùn)行的時(shí)候在內(nèi)存中找不到所需要的頁或段的時(shí)候,就會發(fā)生請求調(diào)入,而從外存中找到的頁或段將會置換內(nèi)存中暫時(shí)不運(yùn)行的頁面到外存。 網(wǎng)絡(luò)爬蟲 URL 去重儲存庫設(shè)計(jì)電子科技大學(xué)成都學(xué)院本科畢業(yè)設(shè)計(jì)論文6在爬蟲啟動工作的過程中,我們不希望同一個(gè)網(wǎng)頁被多次下載,因?yàn)橹貜?fù)下載不僅會浪費(fèi) CPU 機(jī)時(shí),還會為搜索引擎系統(tǒng)增加負(fù)荷。如果實(shí)現(xiàn)去重,一定是建立一個(gè) URL 存儲庫,并且已經(jīng)下載完成的 URL 在進(jìn)行檢測時(shí)候,要加載到內(nèi)存中,在內(nèi)存中進(jìn)行檢測一定會比直接從磁盤上讀取速度快很多。每次有一個(gè)爬蟲線程得到一個(gè)任務(wù)URL 開始下載之前,通過到磁盤上的該文件中檢索,如果沒有出現(xiàn)過,則將這個(gè)新的 URL 寫入記事本的最后一行,否則就放棄該 URL 的下載。當(dāng)需要進(jìn)行檢測 URL 是否重復(fù)的時(shí)候,只需要將這個(gè) URL 進(jìn)行Hash 映射,如果得到的地址已經(jīng)存在,說明已經(jīng)被下載過,放棄下載,否則,將該 URL 及其 Hash 地址作為鍵值對存放到 Hash 表中。這樣就可以對URL 字符串進(jìn)行壓縮,得到一個(gè)壓縮字符串,同時(shí)可以直接得到一個(gè) Hash 地址。在 Java 中有一個(gè) Map 類非常好,你可以將壓縮后的 URL 串作為 Key,而將 Boolean 作為 Value 進(jìn)行存儲,然后將工作中的 Map 在爬蟲停止工作后序列化到本地磁盤上;當(dāng)下一次啟動新的爬蟲任務(wù)的時(shí)候,再將這個(gè) Map 反序列化到內(nèi)存中,供爬蟲進(jìn)行 URL 去重檢測。URL 去重存儲庫使用 Berkeley DB,壓縮后的 URL 字符串作為 Key,或者直接使用壓縮后的 URL 字節(jié)數(shù)組作為 Key,對于 Value 可以使用 Boolean,一個(gè)字節(jié),或者使用字節(jié)數(shù)組,實(shí)際 Value 只是一個(gè)狀態(tài)標(biāo)識,減少 Value 存儲占用存儲空間。原理是:cache 的所有位置都用雙向鏈表連接起來,當(dāng)一個(gè)位置被命中后,就將通過調(diào)整鏈表的指向?qū)⒃撐恢谜{(diào)整到鏈表的頭位置,新加入的內(nèi)容直接放在鏈表的頭上。在使用URL 類之前,必須創(chuàng)建一個(gè) URL 對象,創(chuàng)建的方法是使用其構(gòu)造函數(shù),通過向其指定一個(gè) URL 地址,就能實(shí)例化該類。getHeaderField()方法僅僅獲得服務(wù)器返回的頭標(biāo)志,其通信開銷是最小的,因此在下載網(wǎng)頁前進(jìn)行此測試,不僅能減小網(wǎng)絡(luò)流量,而且能提高程序效率。其中 T 為計(jì)算中的頁面總量, C 1 是阻尼常數(shù)因子, in (p ) 為所有指向 p 的頁面的集合, out (C) 為頁面 C 出鏈的集合. 基于 PageRank 算法的網(wǎng)絡(luò)爬蟲在搜索過程中, 通過計(jì)算每個(gè)已訪問頁面的 PageRank 值來確定頁面的價(jià)值, 并優(yōu)先選擇PageRank 值大的頁面中的鏈接進(jìn)行訪問. H ITS 算法HITS 方法定義了兩個(gè)重要概念: Authority 和 Hub. Authority 表示一個(gè)權(quán)威頁面被其它頁面引用的數(shù)量, 即該權(quán)威頁面的入度值. 網(wǎng)頁被引用的數(shù)量越大, 則該網(wǎng)頁的 Authority 值越大。為了達(dá)到上述目的,一個(gè) SPIDER 必須被設(shè)計(jì)成多線程的,A 個(gè)線程并發(fā)地在網(wǎng)絡(luò)上協(xié)同工作,才有可能在盡可能短的時(shí)間內(nèi)遍歷完網(wǎng)絡(luò)中的網(wǎng)頁。當(dāng) SPIDER 程序訪問到一個(gè)網(wǎng)頁,必須進(jìn)行以下幾項(xiàng)基本處理:抽取網(wǎng)頁中包含的文本;抽取網(wǎng)頁中包含的 URL,并將其區(qū)分為網(wǎng)站內(nèi) URL 或網(wǎng)站外URL。 秒的速度下載 Web 頁面, 平均將會產(chǎn)生 2022 多個(gè) URL [12] , 因此簡單的采用內(nèi)存數(shù)據(jù)結(jié)構(gòu)存儲這些 URL 隊(duì)列有一定的問題, 系統(tǒng)沒有足夠的內(nèi)存空間。UrlParse 類:用于解析 HTML,獲取并過濾 URL。然后根據(jù) URL 下載網(wǎng)頁,然后解析網(wǎng)頁,獲取超鏈接 URLs。將初始 URLs 加入到等待隊(duì)列是否為非法 URL創(chuàng)建啟動爬蟲線程從 URL 等待隊(duì)列獲取任務(wù)URL下載 URL 對應(yīng)的 HTML 代碼將相對地址轉(zhuǎn)換為絕對地址解析 HTML,獲取 URLs將 URLs 加入到URL 等待隊(duì)列是否為絕對地址是否為重復(fù)電子科技大學(xué)成都學(xué)院本科畢業(yè)設(shè)計(jì)論文16第四章 系統(tǒng)分析與設(shè)計(jì) SPIDER 構(gòu)造分析構(gòu)造 SPIDER 程序有兩種方式:(1)把 SPIDER 程序設(shè)計(jì)為遞歸的程序;(2)編寫一個(gè)非遞歸的程序,它要維護(hù)一個(gè)要訪問的網(wǎng)頁列表。因?yàn)樵谶@一過程中每一個(gè)線程都有自己的堆棧,而當(dāng)一個(gè)方法調(diào)用它自身時(shí),它們需要使用同一個(gè)堆棧。假設(shè)線程 1 從 URL 隊(duì)列中獲取一條任務(wù) URL 1,然后它會下載對應(yīng)的 HTML,解析出里面包含 URLs,然后第四章 系統(tǒng)實(shí)現(xiàn)17再將這些 URLs 加入到 URL 隊(duì)列中去。 爬行策略分析圖 因?yàn)楸菊撐膶?shí)現(xiàn)的爬蟲程序的初衷是盡可能遍歷某一站點(diǎn)所有的頁面。通過這種循環(huán)的獲取方式實(shí)現(xiàn)廣度優(yōu)先爬行。當(dāng)這一層 URLs 全部解析完后,再開始下一層 URLs。第二個(gè)方框?yàn)椋馕?a 對應(yīng) HTML 獲取URLs:bcd,同時(shí)刪除 a。 URL 抽取,解析和保存 URL 抽取通過觀察研究 HTML 代碼,我們可以知道。但是不同的網(wǎng)站 href=后面的內(nèi)
點(diǎn)擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1