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

正文內(nèi)容

基于網(wǎng)絡爬蟲的搜索引擎設計與實現(xiàn)—計算機畢業(yè)設計-在線瀏覽

2025-02-01 10:20本頁面
  

【正文】 eb 空間 , 不斷從一個站點移動到另一個站點 , 自動建立索引 , 并加入到網(wǎng)頁數(shù)據(jù)庫中 . 網(wǎng)絡爬蟲進入某個超級文本時 , 它利用 HTML語言的標記結構來搜索信息及獲取指向其他超級文本的 U RL 地址 , 可以完全不依賴用戶干預實現(xiàn)網(wǎng)絡上的自動“爬行”和搜索 。 Java 語言及其擴展正在逐步成為互聯(lián)網(wǎng)應用的規(guī)范, 掀起了自 PC機以來的又一次技術革命。 Java 總是和 C++聯(lián)系在一起,而 C++則是從 C 語言派生而來的,所以 Java 語言繼承了這兩種語言的大部分特性。事實上, Java 中幾個自定義的特性都來自于或可以追溯到它的這些前驅語言。 Java 語言的誕生與過去約 30 年中計算機語言的不斷改進 和發(fā)展密切相關。該語言最初名叫 “Oak”,后來發(fā)現(xiàn) “Oak”已經(jīng)是 Sun 公司另外一種語言的注冊商標,于 1995 年更名為 “Java”,即太平洋上一個盛產(chǎn)咖啡的島嶼的名字。 自從于 1995 年被正式推出之后, Java 語言就以其獨特的優(yōu)勢迅猛發(fā)展,經(jīng)過短短 9 年時間,成為迄今為止最為優(yōu)秀的面向對象語言。當初, Java 語言最初的發(fā)布不亞于一場革命,但是它并不標志著 Java 快速革新時代的結束。 作為當前一種被廣泛使用的面向對象編程語言, Java 具有多方面的特點。雖然 Java 在某些方面(例如資源耗費)也存在一些不足,但這絲毫不影響 Java 作為目前最優(yōu)秀面向對象編程語言的地位。網(wǎng)絡環(huán)境下的編程語言最需要解決的是可移植性和安全性問題。 Java 語言還提供了豐富的類庫,使程序設計人員 可以很方便地調(diào)用相關類建立起自己的系統(tǒng)。 Jbuilder 介紹 Java 的開發(fā)工具中,最出名的莫過于 Borland 公司的 JBuiIder 了。 JBuiIder就如同 Visual c++之于 c++,以為 JBuiIder就是 Java 的全部。 Jbuilder 的特點 :: 1) Jbuilder 支持最新的 Java 技術,包括 Applets、 JSP/Servlets、 JavaBean 以及 EJB(Enterprise JavaBeans)的應用。 3) Jbuilder 支持各種應用服務器。 4) Jbuilder 能用 Servlet 和 JSP 開發(fā)和調(diào)試動態(tài) Web 應用。由于 Jbuilder 是用純 Java語言編寫的,其代碼不含任 何專屬代碼和標記,它支持最新的 Java 標準。 JBuilder 環(huán)境開發(fā)程序方便,它是純的 Java 開發(fā)環(huán)境,適合企業(yè)的 J2EE 開發(fā)。用于響應客戶端的請求。 Servlet 代碼的主要 作用是為了增強 Java 服務器端的功能,它運行在服務器端,用于接收并且處理瀏覽器客戶端發(fā)出的請求,該請求是通過配置文件 的相關配置進行轉發(fā)。和一般的 Java 類不同之處只是在于 Servlet 可以處理 Http 請求。 servlet 只需 Web 服務器加載一次 ,后續(xù)又用到這個 servlet,就不需要再加載。 是可擴展的。它提供一個中心位置來處理全部的終端請求。 Servlet 的原理圖描述如下: 服 務 器瀏 覽 器s e r v l e t 使用 servlet 有幾個優(yōu)點: 一是有效性, servlet 的初始化代碼僅在 web 服務器第一次加載時候執(zhí)行一次,一旦加載了 servlet,在處理一個新的請求的時候,只須調(diào)用一個新的服務方法。 二是穩(wěn)定性, servlet 能夠維護每個請求的狀態(tài),一旦加載了 servlet,她就駐留在內(nèi)存中,對收到的請求提供服務。 四是安全性, servlet 在服務器端運行,因此,安全性由 web 服務器提供能保 障, servlet也能夠利用 java Security Manager 提供的安全性功能。 一是 寬度或深度優(yōu)先搜索策略 : 搜索引擎所用的第一代網(wǎng)絡爬蟲主要是基于傳統(tǒng)的圖算法 , 如寬度優(yōu)先或深度優(yōu)先算法來索引整個 Web, 一個核心的 U RL 集被用來 作為一個種子集合 , 這種算法遞歸的跟蹤超鏈接到其它頁面 , 而通常不管頁面的內(nèi)容 , 因為最終的目標是這種跟蹤能覆蓋整個 W eb. 這種策略通常用在通用搜索引擎中 ,因為通用搜索引擎獲得的網(wǎng)頁越多越好 , 沒有特定的要求 . 二是 寬度優(yōu)先搜索算法 (又稱廣度優(yōu)先搜索 ) 是最簡便的圖的搜索算法之一 , 這一算法也是很多重要的圖的算法的原型 .單源最短路徑算法和 P rim 最小生成樹算法都采用了和寬度優(yōu)先搜索類似的思想 .寬度優(yōu)先搜索算法是沿著樹的寬度遍歷樹的節(jié)點 , 如果發(fā)現(xiàn)目標 , 則算法中止 . 該算法的設計和實現(xiàn)相對簡單 , 屬 于盲目搜索 . 在目前為覆蓋盡可能多的網(wǎng)頁 , 一般使用寬度優(yōu)先搜索方法 . 也有很多研究將寬度優(yōu)先搜索策略應用于聚焦爬蟲中 . 其基本思想是認為與初始 U RL 在一定鏈接距離內(nèi)的網(wǎng)頁具有主題相關性的概率很大 . 另外一種方法是將寬度優(yōu)先搜索與網(wǎng)頁過濾技術結合使用 , 先用廣度優(yōu)先策略抓取網(wǎng)頁 , 再將其中無關的網(wǎng)頁過濾掉 . 這些方法的缺點在于 , 隨著抓取網(wǎng)頁的增多 , 大量的無關網(wǎng)頁將被下載并過濾 , 算法的效率將變低 。 四、系統(tǒng)詳細設計 搜索引擎界面設計 界面設計實現(xiàn) 設計界面如下: 設計代碼分析 html head title簡易搜索引擎 /title meta equiv=ContentType content=text/html。具體代碼設計為: package crawer。 import .*。 import .*。 public class MyServlet extends HttpServlet { private static final String CONTENT_TYPE = text/html。 public Timer timer。 ArrayList String myresult。 if (var0 == null) { var0 = 。 PrintWriter out = ()。 String search=new String(bytes,GB2312)。 // ()。 //啟動定時器,在時間內(nèi)檢查是否有結果,并顯示 myresult=new ArrayList String()。 (html)。 (p注意默認起始站點為: 10/p)。 (body bgcolor=\c0c0c0\)。 for(int i=0。i++){ te=(i+1)。//輸出結果 } if(()==0){ (p對不起 ,沒有找到結果 /p)。 (/html)。 } //Clean up resources public void destroy() { } } 網(wǎng)頁的解析實現(xiàn) 網(wǎng)頁的分析 網(wǎng)頁文檔作為 一 種半結構化文本是一種界于自由文本和結構化文本之間的數(shù)據(jù),它通常沒有嚴格的格式。網(wǎng)頁信息的載體是網(wǎng)頁文本,用超文本標記語言編寫。一個元素的描述一般由開始標記 (Start Tag)、內(nèi)容 (Content)、結束標記 (End Tag)所組成。通過構造網(wǎng)頁標記樹的方法可反映網(wǎng)頁的結構特點, 下 圖是一個簡單的動態(tài)網(wǎng)頁標記樹 h t m lh e a d b o d yt a b l et i t l el i n k 1 l i n k 2 網(wǎng)頁的處理隊列 頁面處理隊列中保存的是頁面的 URL,它實際上是由等待隊列、處理隊列、錯誤隊列、完成隊列組成。頁面隊列中保存的頁面的 URL 都是屬于內(nèi)鏈接。在這個隊列中, URL 等待被移動 Spider 程序處理。 (2)處理隊列 (Proces— sUI )。當一個 URL 被處理過后,它將被移送到錯誤隊列或者是完成隊列。如果在處理某一頁面時發(fā)生錯誤,它的 URL 將被加入到錯誤隊列,該 URL 到達這一隊列后將不再移人其他隊列。 (4)完成隊列 (LaunchURL)。 同一時間一個 URL 只能在一個隊列中,這也叫做 URL 的狀態(tài),這是因 為人們常常使用狀態(tài)圖描述計算機程序,程序按照狀態(tài)圖從一個狀態(tài)變換到下一個狀態(tài)實際上,當發(fā)現(xiàn) URL(內(nèi)鏈接 )時,移動 Spider 會檢查該 URL 是否已經(jīng)存在于完成隊列或錯誤隊列中,如果已經(jīng)存在于上述兩種隊列的任何一個隊列中,那么移動 Spider 將不會對此 URL 進行任何處理。 搜索字符串的匹配 對于要搜索的字符串,必須在抓取的網(wǎng)頁中進行匹配檢查,如果存在于該網(wǎng)頁中,則把地址添加到輸出隊列中。 //html 文件解析類 import 。 import 。 import 。 import 。 import 。 import 。 import 。 URL base = null。 StringBuffer sb = new StringBuffer()。 //(循環(huán)讀取解析 )。 j i。39。39。 case 39。: if ((j) == 39。) { state = 0。 (0)。 } } } } public void analyze(String param) { StringTokenizer st = new StringTokenizer(param)。 String first_word = ().toLowerCase()。 } else if ((frame)) { analyzeFrame(())。 } } /**分析 a分析 . */ void analyzeAnchor(String anchor) { String href = extract(anchor, href)。 addURL( href)。 if (src == null) return。 } /** 由 base標記中分離 url. */ void extractBase(String b) { String b2 = extract(b, href)。 } catch (MalformedURLException e) { ()。 String lower_case = ()。 if (i 0) return null。 if ((i) != 39。) return null。 int i2。39。 i2 = (39。, i)。 } else { return (i, i2)。 for (i2 = i。 i++) { if (((i))) break。 } } catch (StringIndexOutOfBoundsException e) {} return null。 (url)。 } } 網(wǎng)絡爬蟲的實現(xiàn) 爬蟲結構分析 網(wǎng)絡爬蟲 沿著 WWW 文件間的鏈接在網(wǎng)上漫游,記錄 URL、文件的簡明概要、關鍵字或索引。但并不是所有的檢索服務器都采用 robot 只有那些自動在網(wǎng)上漫游并形成自己的數(shù)據(jù)庫的那些才是。 Robot 的運行方式是這樣的:從一個或一組 URL 開始,訪問該 URL 并進行本地索引同時記錄該 URL 所指 HTML 文件中所有新的 URL 錨鏈(anchor);然后再以這些新的 URL 為起始點,繼續(xù)進行本地索引,直到再沒有滿足條件的新URL 為止。雖然 robot 和spider 功能很強,但如果有一組 URL 地址沒有被組 ~bURL 所鏈接到,那 么 robot 和 spider 就找不到它們。如果僅僅是從遠程獲得數(shù)據(jù),實現(xiàn)一個 robot 并不很難。因而其實現(xiàn)時要考慮很多相關技術。它是 WWW 上數(shù)據(jù)傳輸?shù)臉藴蕝f(xié)議。 (2)HTML(HyperText Markup Language)語言。 (3)分詞技術。 (4)公共網(wǎng)關接口CGI(Conlmon Gateway Interface)。 爬蟲的設計實現(xiàn)
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1