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

正文內(nèi)容

基于多線程的網(wǎng)絡爬蟲的設計與實現(xiàn)畢業(yè)論文(留存版)

2025-09-13 14:58上一頁面

下一頁面
  

【正文】 能,直接決定了搜索引擎的未來。 本課題的目標是研究并實現(xiàn)一個 實現(xiàn)簡單的可在后臺自動運行的爬蟲程序。網(wǎng)絡蜘蛛是通過網(wǎng)頁的鏈接地址來尋找網(wǎng)頁,從網(wǎng)站的一個頁面(通常是首頁)開始,讀取網(wǎng)頁的內(nèi)容,找到在網(wǎng)頁中的其它鏈接地址,然后通過這些鏈接地址尋找下一個網(wǎng)頁,這樣一直循環(huán)下去,直到把這個網(wǎng)站所有的網(wǎng)頁都抓取完為止。它為搜索引擎從 Inter 上下載網(wǎng)頁。剛開始 它只用來統(tǒng)計互聯(lián)網(wǎng)上的服務器數(shù)量,后來則發(fā)展為能夠檢索網(wǎng)站域名。網(wǎng)絡爬蟲是搜索引擎的重要組成部分。雖然大的 Flash 效果看上去很好,外觀看著也很漂亮,但可惜搜索引擎看不到,無法讀取任何內(nèi)容。比 較好的情況是邏輯結(jié)構與前面的樹型物理結(jié)構相吻合。 靈活: HTTP 允許傳輸任意類型的數(shù)據(jù)對象。這一方法可以在不必傳輸整個響應內(nèi)容的情況下,就可以獲取包含在響應消息頭中的元信息。 其中 GET 和 POST 方法是常用的兩種請求方法。線程是程序中一個單一的順序控制流程 .在單個程序中同時運行多個線程完成不同的工作 ,稱為多線程。 JAVA 的線程是通過 類來實現(xiàn)的,它內(nèi)部實現(xiàn)了虛擬CPU 的功能,能夠接收和處理傳遞給它的代碼和數(shù)據(jù),并提供了獨立的運行控制功能。 使用 start()方法,線程進入 Runnable 狀態(tài),它將線程調(diào)度器注冊這個線程。 當同時運行的相互獨立的線程需要共享數(shù)據(jù)并且需要考慮其他線程的狀態(tài)時,就需要使用一套機制使得這些線程同步,避免在爭用資源時發(fā)生沖突,甚至發(fā)生死鎖。而 IP 是給因特網(wǎng)的每一臺電腦規(guī)定一個地址。 本課題 將 會 采用該種 協(xié)議為基礎,進行編程。一般在服務器端編程中,當獲得連接時,需要開啟專門的線程處理該連接,每個連接都由獨立的線程實現(xiàn)。 在 Java 語言中,對于 TCP 方式的網(wǎng)絡編程提 供了良好的支持,在實際實現(xiàn)時,以 類代表客戶端連接,以 類代表服務器端連接。 此時, 正則表達式 就成為了我們最好的選擇。 也有很多研究將寬度優(yōu)先搜索策略應用于聚焦爬蟲中 . 其基本思想是認為與初始 URL 在一定鏈接距離內(nèi)的網(wǎng)頁具有主題相關性的概率很大 。它只訪問經(jīng)過網(wǎng)頁分析算法預測為“有用”的網(wǎng)頁。 (6) 繼續(xù)查找 V 的其他鄰接頂點 col,轉(zhuǎn)到步驟 (5),若 V 的所有鄰接頂點都已經(jīng)被訪問過,則轉(zhuǎn)到步驟 (2)。 廣度優(yōu)先搜索 寬度優(yōu)先搜索算法 (又稱廣度優(yōu)先搜索 ) 是最簡便的圖的搜索算法之一 ,這一算法也是很多重要的圖的算法的原型 。示例代碼如下: OutputStream os = ()。該包中既包含基礎的網(wǎng)絡編程類,也包含封裝后的專門處理 WEB 相關的處理類。 關閉網(wǎng)絡連接 在數(shù)據(jù)交換完成以后,關閉網(wǎng)絡連接,釋放程序占用的端口、內(nèi)存等系統(tǒng)資源,結(jié)束網(wǎng)絡編程。 TCP 是一個面向連接的協(xié)議,為用戶進程提供可靠的全雙工字節(jié)流。 Java 網(wǎng)絡 編程 網(wǎng)絡編程就是兩個或多個設備之間的數(shù)據(jù)交換,其實更具體的說,網(wǎng)絡編程就是兩個或多個程序之間的數(shù)據(jù)交換,和普通的單機程序相比,網(wǎng)絡程序最大的不同就是需要交換數(shù)據(jù)的程序運行在不同的計算機上,這樣就造成了數(shù)據(jù)交換的復雜。當線程的 run 方法運行完畢,線程將被拋棄 ,進入死亡狀態(tài)。 Thread(String name)。 “ Bug”,因此要小心使用。每個進程包含一到多個線程。 CONNECT HTTP/ 協(xié)議中預留給能夠?qū)⑦B接改為管道方式的代理服務器。 同樣也分為三部分,第一部分叫 request line, 第二部分叫 request header,第三部分是 body. header 和 body 之間也有 個空行, 結(jié)構如 圖 22: 圖 22 Response 消息結(jié)構 HTTP/versionnumber 表示 HTTP 協(xié)議的版本號, statuscode 和 message 請看下節(jié) [HTTP 狀態(tài)代成都學院學士學位論文(設計) 7 碼 ]的詳細解釋 . 請求方法 HTTP/ 協(xié)議中共定義了八種方法(有時也叫“動作”)來表明 RequestURI 指定的資源的不同操作方式: 本系統(tǒng)主要研究 Get 請求的特點。是萬維網(wǎng)( world wide web)交換信息的基礎。 URL 結(jié)構一般分為兩個部分,一個是物理結(jié)構,一個是邏輯結(jié)構。 登陸要求。從此搜索引擎進入了高速發(fā)展時期。 Jug head 是后來另一個 Gopher 搜索工具。高效,優(yōu)秀的自動獲取資源程序可以使人們在互聯(lián)網(wǎng)上尋找到更及時,更準確的信息。用戶通過輸入自己感興趣的關鍵字就能獲得與之相關的網(wǎng)頁。 作者簽名: 日 期: 成都學院學士學位論文(設計) 基于多線程的網(wǎng)絡爬蟲的設計與實現(xiàn) 摘要 : 網(wǎng)絡爬蟲( Web Crawler),又叫網(wǎng)絡蜘蛛( Web Spider),是搜索引擎的重要組成部分。 系統(tǒng) 可以進行面向主題的抓取。如果把整個互聯(lián)網(wǎng)當成一個網(wǎng)站,那么網(wǎng)絡蜘蛛就可以用這個原理把互聯(lián)網(wǎng)上所有的網(wǎng)頁都抓取下來。作為搜索引擎的資源采集部分,網(wǎng)絡爬蟲的性能將直接影響到整個搜索引擎索引網(wǎng)頁的數(shù)量、質(zhì)量和更新周期。與Wanderer 相對應, Martin Kosher 于 1993 年 10 月創(chuàng)建了 ALIWEB,它是 Archie 的 HTTP 版本。 現(xiàn)今,網(wǎng)絡爬蟲主要分為通用爬蟲和聚焦爬蟲兩類。 無休止 的 跳轉(zhuǎn)。 統(tǒng)一資源定位符 URL 是對可以從因特網(wǎng)上得到的資源的位置和訪問方法的一種簡潔的表示。正在傳輸?shù)念愋陀?ContentType 加以標記。 GET 向特定的資源發(fā)出請求。 它們有著以下的區(qū)別: 1. GET 提交的數(shù)據(jù)會放在 URL 之后,以 ?分割 URL 和傳輸數(shù)據(jù),參數(shù)之間以 amp。線程和進程的區(qū)別在于 ,子進程和父 進程有不同的代碼和數(shù)據(jù)空間 ,而多個線程則共享數(shù)據(jù)空間 ,每個線程有自己的執(zhí)行堆棧和程序計數(shù)器為 其執(zhí)行上下文 .多線程主要是為了節(jié)約 CPU時間 ,發(fā)揮利用 ,根據(jù)具體情況而定 . 線程的運行中需要使用計算機的內(nèi)存資源和 CPU。每個 JAVA應用程序都至少有一個線程,這就是所謂的主線程。調(diào)用 start()方法并不一定馬上會執(zhí)行這個線程,正如上面所說,它只是進入 Runnble 而不是 Running。 JAVA 提供了多種機制以實現(xiàn)線程同步。 TCP/IP 協(xié)議不是 TCP 和 IP 這兩個協(xié)議的合稱,而是指因特網(wǎng)整個 TCP/IP 協(xié)議族。 網(wǎng)絡編程步驟 無論使用 TCP 方式還是 UDP 方式進行網(wǎng)絡通訊,網(wǎng)絡編程都是由客戶端和服務器端組成。 交換數(shù)據(jù) 服務器端通過獲得的連接進行數(shù)據(jù)交換。在進行網(wǎng)絡編程時,底層網(wǎng)絡通訊的細節(jié)已經(jīng)實現(xiàn)了比較高的封裝,所以在程序員實際編程時,只需要指定 IP 地址和端口號碼就可以建立連接了。 正則表達式 特點 正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規(guī)則字符串”,這個“規(guī)則字符串”用來表達對字符串的一種過濾邏輯。 下面先來看看圖的寬度優(yōu)先遍歷過程。存在的一個問題是,在爬蟲抓取路徑上的很多相關網(wǎng)頁可能被忽略,因為最佳優(yōu)先策略是一種局部最優(yōu)搜索算法。 (5) 若 V 的鄰接頂點 col 未被訪問過,則 col 進隊列。深度優(yōu)先在很多情況下會導致爬蟲的陷入 (trapped)問題,目前常見的是廣度優(yōu)先和最佳優(yōu)先方法。 連接一旦建立,則完成了客戶端編程的第一步,緊接著的步驟就是按照“請 求 響應”模型進行網(wǎng)絡數(shù)據(jù)交換,在 Java 語言中,數(shù)據(jù)傳輸功能由 Java IO 實現(xiàn),也就是說只需要從連接中獲得輸入流和輸出流即可,然后將需要發(fā)送的數(shù)據(jù)寫入連接對象的輸出流中,在發(fā)送完成以后從輸入流中讀取數(shù)據(jù)即可。 和網(wǎng)絡編程有關的基本 API 位于 包中,該包中包含了基本的網(wǎng)絡編程實現(xiàn),該包是網(wǎng)絡編程的基礎。根據(jù)邏輯需要,可以多次交換數(shù)據(jù),但是還是必須遵循請求響應模型。 TCP 傳輸控制協(xié)議( Transmission Control Protocol)。synchronized 關鍵字實現(xiàn)的基本操作是把每個需要線程同步的部分定義為一個臨界區(qū),在臨界區(qū)中同成都學院學士學位論文(設計) 11 一時刻只有一個線程被執(zhí)行。 線程調(diào)度程序根據(jù)調(diào)度策略來調(diào)度不同的線程,調(diào)用線程的 run 方法給已經(jīng)注冊的各個線程以執(zhí)行的機會,被調(diào)度執(zhí)行的線程進入運行( Running)狀態(tài)。創(chuàng)建一個名為 name 的目標為 target 的線程。 。 (摘自 百度百科 [5]) 定義 線程( Thread):每個正在系統(tǒng)上 運行的程序都是一個進程。 TRACE 回顯服務器收到的請求,主要用于測試或診斷。當使用的是 GET 方法的時候, body 是為空的 Response 消息的結(jié)構, 和 Request 消息的結(jié)構基本一樣。超文本傳輸協(xié)議 (HTTPHypertext transfer protocol) 是分布式,協(xié)作式,超媒體系統(tǒng)應用之 間的通信協(xié)議。簡單 地說, URL 就是 Web 地址,俗稱“網(wǎng)址”。如果未開啟,則無法進行訪問,訪問頁面顯示的也不會正常,這種方式會讓蜘蛛無法進行訪問。同年 4 月,斯坦福( Stanford)大學最為著名的兩名博士生,美籍華人楊致遠( Gerry Yang)和 David Filo 共同創(chuàng)辦了Yahoo 公司,并成功地使搜索引擎的概念深入人心。由于 Archie 深受歡迎,受其啟發(fā),Nevada System Computing Services 大學于 1993年開發(fā)了一個 Gopher( Gopher FAQ)搜索工具 Veronica( Veronica FAQ)。不同的搜索引擎,會根據(jù)對搜索結(jié)果的不同需求,選擇最合適的爬行策略來搜集互聯(lián)網(wǎng)上的信息。搜索引擎搜集互聯(lián)網(wǎng)上數(shù)以億計的網(wǎng)頁,并為每個關鍵詞建立索引。 作 者 簽 名: 日 期: 指導教師簽名: 日 期: 使用授權說明 本人完全了解 大學關于收集、保存、使用畢業(yè)設計(論文)的規(guī)定,即:按照學校要求提交畢業(yè)設計(論文)的印刷本和電子版本;學校有權保存畢業(yè)設計(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務;學??梢圆捎糜坝 ⒖s印、數(shù)字化或其它復制手段保存論文;在不以贏利為目的前提下,學??梢怨颊撐牡牟糠只蛉績?nèi)容。從 行為 上來看,它更近似于主題網(wǎng)絡爬蟲。 WEB 資源自動獲取技術程序就是用來搜集網(wǎng)頁的程序。高效,優(yōu)秀的爬蟲程序可以使人們在互聯(lián)網(wǎng)上尋找到更及時,更準確的信息。 ALIWEB不使用“機器人”程序,而是靠網(wǎng)站主動提交信息來建立 自己的鏈接索引,類似于現(xiàn)在我們熟知的Yahoo。通用搜索引擎的目標是盡可能大的網(wǎng)絡覆蓋率,通用搜索引擎大多提供基于關鍵字的檢索。對搜索引擎來說只對 301 跳轉(zhuǎn)相對來說比較友好,對其他形式的跳轉(zhuǎn)都是比較敏感,例如: JavaScript 跳轉(zhuǎn)、 Meta Refresh 跳轉(zhuǎn)、 Flash 跳轉(zhuǎn)、 302 跳轉(zhuǎn)。URL 給資源的位置提供一種抽象的識別方法,并用這種方法給資源定位。 無 連接:無連接的含義是限制每次連接只處理一個請求。注意: GET 方法不應當被用于產(chǎn)生“副作用”的操作中,例如在web 。相連,如 ? name = XXX amp。 (摘自百度百科 [5]) 優(yōu)點 使用線程可以把占據(jù)時間長的程序中的任務放到后臺去處理。它由 JVM 創(chuàng)建并調(diào)用 JAVA 應用程序的 main方法。 我們也可以 通過實現(xiàn) Runnable 接口并實現(xiàn)接口中定義的唯一方法 run(),可以創(chuàng)建一個線程。多數(shù) JAVA 同步是以對象鎖定為中心的。 而最主要的是 TCP 協(xié)議和 IP 協(xié)議。當然, B/S 結(jié)構的編程中只需要實現(xiàn)服務器端即可。服務器端的數(shù)據(jù)交換步驟是首先接收客戶端發(fā)送過來的數(shù)據(jù),然后進行邏輯處理,再把處理以后的結(jié)果數(shù)據(jù)發(fā)送給客戶端。正是由于這種高度的封裝,一方面簡化了 Java 語言網(wǎng)絡編程的難度,另外也使得使用 Java 語言進行網(wǎng)絡編程時無法深入到網(wǎng)絡的底層,所以使用 Java 語言進行網(wǎng)絡底層系統(tǒng)編程很困難,具體點說, Java 語言無法實現(xiàn)底層的網(wǎng)絡嗅探以及獲得 IP 包結(jié)構等 信息。 通過 給定一個正則表達式和另一個字符串,我們可以達到如下的目的: (稱作“匹配”); ,從字符串中獲取我們想要的特定部分。圖的寬度優(yōu)先遍歷 (BFS)算法是一個分層搜索的過程,和樹的層序遍歷算法相同。因此需要將最佳優(yōu)先結(jié)合具體的應用進行改進,以跳出局部最優(yōu)點。 (4) 查找頂點 V 的第一個鄰接頂點 col。 網(wǎng)頁搜索策略 在抓取網(wǎng)頁的時候,網(wǎng)頁的抓取策略可以 分為深度優(yōu)先、廣度優(yōu)先和最佳優(yōu)先三種。如果建立連接時,本機網(wǎng)絡不通,或服務器端程序未開啟,則會拋出異常。 Java 網(wǎng)絡編程技術 Java 語言是在網(wǎng)絡環(huán)境下誕生的,所以 Java 語言雖然不能說是對于網(wǎng)絡編程的支持最好的語言,但是必須說是一種對于網(wǎng)絡編程提供良好支持的語言,使用 Java 語言進行網(wǎng)絡編程將是一件比較輕松的工作。交換數(shù)據(jù)嚴格按照請求響應模型進行,由客戶端發(fā)送一個請求數(shù)據(jù)到服務器,服務器反饋一個響應數(shù)據(jù)給客戶端,如果客戶端不發(fā)送請求則服務器端 就不響應。 其中 主要 使用 的 基于 TCP 和 UDP 的 網(wǎng)絡編程。 JAVA 使用 synch
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1