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

正文內容

基于多線程的網絡爬蟲的設計與實現(xiàn)畢業(yè)論文(更新版)

2025-08-05 20:16上一頁面

下一頁面
  

【正文】 o HTML Parser類庫 為了簡化系統(tǒng)實現(xiàn)難度和提高系統(tǒng)穩(wěn)定性,本系統(tǒng)主要使用了這兩個第三方類庫,前文已經多次提到這兩個類庫。在網頁HTML代碼中,網頁標題位于標簽之間。 網頁抓取 為了使系統(tǒng)更快速,更穩(wěn)定,對于網頁的抓取使用第三方類庫HttpClient實現(xiàn)。這樣待抓取隊列里的URL越來越多,并且好多都是重復的。相對地址需要先轉化為絕對地址,再進行過濾。HTML代碼中,頁面之間的跳轉,關聯(lián)是通過href標簽來實現(xiàn)的。由于 Eclipse 中的每樣東西都是插件,對于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運行。圖32 表示的表用于保存未訪問的URL的信息(URL表)。由URL任務列表開始,根據預先設定的關鍵字取網頁,同時判斷URL是否重復,按照一定算法和排序方式搜索頁面,然后對頁面按照一定算法進行分析,并提取相關URL,最后將所得URL返回任務列表。網頁的內容并不是簡單地指網頁的HTML代碼,因為大部分的HTML標簽以及JavaScript代碼對我們的后期要進行的查詢工作等都是冗余的,所以應該將它們剔除。這個過程看似簡單,但卻要考慮幾個問題。(摘自百度百科[5])網絡爬蟲種類繁多,如果按照部署在哪里分,可以分成::一般是一個多線程程序,同時下載多個目標HTML,可以用Java,Python,一般綜合搜索引擎的爬蟲這樣做。因此需要將最佳優(yōu)先結合具體的應用進行改進,以跳出局部最優(yōu)點。(6) 繼續(xù)查找V 的其他鄰接頂點col,轉到步驟(5),若V 的所有鄰接頂點都已經被訪問過,則轉到步驟(2)。圖的寬度優(yōu)先遍歷(BFS)算法是一個分層搜索的過程,和樹的層序遍歷算法相同。 寬度優(yōu)先搜索算法(又稱廣度優(yōu)先搜索) 是最簡便的圖的搜索算法之一,這一算法也是很多重要的圖的算法的原型。通過給定一個正則表達式和另一個字符串,我們可以達到如下的目的:(稱作“匹配”);,從字符串中獲取我們想要的特定部分。示例代碼如下: OutputStream os = ()。正是由于這種高度的封裝,一方面簡化了Java語言網絡編程的難度,另外也使得使用Java語言進行網絡編程時無法深入到網絡的底層,所以使用Java語言進行網絡底層系統(tǒng)編程很困難,具體點說,Java語言無法實現(xiàn)底層的網絡嗅探以及獲得IP包結構等信息。該包中既包含基礎的網絡編程類,也包含封裝后的專門處理WEB相關的處理類。服務器端的數(shù)據交換步驟是首先接收客戶端發(fā)送過來的數(shù)據,然后進行邏輯處理,再把處理以后的結果數(shù)據發(fā)送給客戶端。關閉網絡連接在數(shù)據交換完成以后,關閉網絡連接,釋放程序占用的端口、內存等系統(tǒng)資源,結束網絡編程。當然,B/S結構的編程中只需要實現(xiàn)服務器端即可。TCP是一個面向連接的協(xié)議,為用戶進程提供可靠的全雙工字節(jié)流。而最主要的是TCP協(xié)議和IP協(xié)議。 Java 網絡編程 網絡編程就是兩個或多個設備之間的數(shù)據交換,其實更具體的說,網絡編程就是兩個或多個程序之間的數(shù)據交換,和普通的單機程序相比,網絡程序最大的不同就是需要交換數(shù)據的程序運行在不同的計算機上,這樣就造成了數(shù)據交換的復雜。多數(shù)JAVA同步是以對象鎖定為中心的。當線程的run方法運行完畢,線程將被拋棄,進入死亡狀態(tài)。 我們也可以通過實現(xiàn)Runnable接口并實現(xiàn)接口中定義的唯一方法run(),可以創(chuàng)建一個線程。 Thread(String name)。它由JVM創(chuàng)建并調用JAVA應用程序的main方法?!癇ug”,因此要小心使用。(摘自百度百科[5]) 優(yōu)點使用線程可以把占據時間長的程序中的任務放到后臺去處理。每個進程包含一到多個線程。相連, ? name = XXX amp。CONNECT HTTP/。注意:GET方法不應當被用于產生“副作用”的操作中,例如在web 。 同樣也分為三部分,第一部分叫request line, 第二部分叫request header,第三部分是body. header和body之間也有個空行,結構如圖22:圖22 Response消息結構HTTP/versionnumber表示HTTP協(xié)議的版本號,statuscode 和message 請看下節(jié)[HTTP狀態(tài)代碼]的詳細解釋. 請求方法 HTTP/(有時也叫“動作”)來表明RequestURI指定的資源的不同操作方式:本系統(tǒng)主要研究Get請求的特點。 無連接:無連接的含義是限制每次連接只處理一個請求。是萬維網(world wide web)交換信息的基礎。URL 給資源的位置提供一種抽象的識別方法,并用這種方法給資源定位。 URL結構一般分為兩個部分,一個是物理結構,一個是邏輯結構。對搜索引擎來說只對301跳轉相對來說比較友好,對其他形式的跳轉都是比較敏感,例如:JavaScript跳轉、Meta Refresh跳轉、Flash跳轉、302跳轉。登陸要求。通用搜索引擎的目標是盡可能大的網絡覆蓋率,通用搜索引擎大多提供基于關鍵字的檢索。從此搜索引擎進入了高速發(fā)展時期。ALIWEB不使用“機器人”程序,而是靠網站主動提交信息來建立 自己的鏈接索引,類似于現(xiàn)在我們熟知的Yahoo。Jug head是后來另一個Gopher搜索工具。高效,優(yōu)秀的爬蟲程序可以使人們在互聯(lián)網上尋找到更及時,更準確的信息。高效,優(yōu)秀的自動獲取資源程序可以使人們在互聯(lián)網上尋找到更及時,更準確的信息。 WEB資源自動獲取技術程序就是用來搜集網頁的程序。用戶通過輸入自己感興趣的關鍵字就能獲得與之相關的網頁。從行為上來看,它更近似于主題網絡爬蟲。作者簽名:        日  期:         基于多線程的網絡爬蟲的設計與實現(xiàn)摘要:網絡爬蟲(Web Crawler),又叫網絡蜘蛛(Web Spider),是搜索引擎的重要組成部分。作 者 簽 名:       日  期:        指導教師簽名:        日  期:        使用授權說明本人完全了解 大學關于收集、保存、使用畢業(yè)設計(論文)的規(guī)定,即:按照學校要求提交畢業(yè)設計(論文)的印刷本和電子版本;學校有權保存畢業(yè)設計(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務;學??梢圆捎糜坝 ⒖s印、數(shù)字化或其它復制手段保存論文;在不以贏利為目的前提下,學校可以公布論文的部分或全部內容。系統(tǒng)可以進行面向主題的抓取。搜索引擎搜集互聯(lián)網上數(shù)以億計的網頁,并為每個關鍵詞建立索引。如果把整個互聯(lián)網當成一個網站,那么網絡蜘蛛就可以用這個原理把互聯(lián)網上所有的網頁都抓取下來。不同的搜索引擎,會根據對搜索結果的不同需求,選擇最合適的爬行策略來搜集互聯(lián)網上的信息。作為搜索引擎的資源采集部分,網絡爬蟲的性能將直接影響到整個搜索引擎索引網頁的數(shù)量、質量和更新周期。由于Archie深受歡迎,受其啟發(fā),Nevada System Computing Services大學于1993年開發(fā)了一個Gopher(Gopher FAQ)搜索工具Veronica(Veronica FAQ)。與Wanderer相對應,Martin Kosher于1993年10月創(chuàng)建了ALIWEB,它是Archie的HTTP版本。同年4月,斯坦福(Stanford)大學最為著名的兩名博士生,美籍華人楊致遠(Gerry Yang)和David Filo共同創(chuàng)辦了Yahoo公司,并成功地使搜索引擎的概念深入人心。現(xiàn)今,網絡爬蟲主要分為通用爬蟲和聚焦爬蟲兩類。如果未開啟,則無法進行訪問,訪問頁面顯示的也不會正常,這種方式會讓蜘蛛無法進行訪問。 無休止的跳轉。簡單地說,URL就是Web地址,俗稱“網址”。統(tǒng)一資源定位符 URL 是對可以從因特網上得到的資源的位置和訪問方法的一種簡潔的表示。超文本傳輸協(xié)議 (HTTPHypertext transfer protocol) 是分布式,協(xié)作式,超媒體系統(tǒng)應用之間的通信協(xié)議。正在傳輸?shù)念愋陀蒀ontentType加以標記。當使用的是GET 方法的時候,body是為空的Response消息的結構, 和Request消息的結構基本一樣?!ET 向特定的資源發(fā)出請求。TRACE 回顯服務器收到的請求,主要用于測試或診斷。它們有著以下的區(qū)別:1. GET提交的數(shù)據會放在URL之后,以?分割URL和傳輸數(shù)據,參數(shù)之間以amp。(摘自百度百科[5]) 定義線程(Thread):每個正在系統(tǒng)上運行的程序都是一個進程。線程和進程的區(qū)別在于,子進程和父進程有不同的代碼和數(shù)據空間,而多個線程則共享數(shù)據空間,發(fā)揮利用,根據具體情況而定. 線程的運行中需要使用計算機的內存資源和CPU。每個JAVA應用程序都至少有一個線程,這就是所謂的主線程。創(chuàng)建一個名為name的目標為target的線程。調用start()方法并不一定馬上會執(zhí)行這個線程,正如上面所說,它只是進入Runnble而不是Running。 線程調度程序根據調度策略來調度不同的線程,調用線程的run方法給已經注冊的各個線程以執(zhí)行的機會,被調度執(zhí)行的線程進入運行(Running)狀態(tài)。JAVA提供了多種機制以實現(xiàn)線程同步。synchronized關鍵字實現(xiàn)的基本操作是把每個需要線程同步的部分定義為一個臨界區(qū),在臨界區(qū)中同一時刻只有一個線程被執(zhí)行。TCP/IP協(xié)議不是TCP和IP這兩個協(xié)議的合稱,而是指因特網整個TCP/IP協(xié)議族。TCP傳輸控制協(xié)議(Transmission Control Protocol)。 網絡編程步驟無論使用TCP方式還是UDP方式進行網絡通訊,網絡編程都是由客戶端和服務器端組成。根據邏輯需要,可以多次交換數(shù)據,但是還是必須遵循請求響應模型。交換數(shù)據服務器端通過獲得的連接進行數(shù)據交換。,該包中包含了基本的網絡編程實現(xiàn),該包是網絡編程的基礎。在進行網絡編程時,底層網絡通訊的細節(jié)已經實現(xiàn)了比較高的封裝,所以在程序員實際編程時,只需要指定IP地址和端口號碼就可以建立連接了。連接一旦建立,則完成了客戶端編程的第一步,緊接著的步驟就是按照“請求響應”模型進行網絡數(shù)據交換,在Java語言中,數(shù)據傳輸功能由Java IO實現(xiàn),也就是說只需要從連接中獲得輸入流和輸出流即可,然后將需要發(fā)送的數(shù)據寫入連接對象的輸出流中,在發(fā)送完成以后從輸入流中讀取數(shù)據即可。 正則表達式特點正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規(guī)則字符串”,這個“規(guī)則字符串”用來表達對字符串的一種過濾邏輯。深度優(yōu)先在很多情況下會導致爬蟲的陷入(trapped)問題,目前常見的是廣度優(yōu)先和最佳優(yōu)先方法。 下面先來看看圖的寬度優(yōu)先遍歷過程。(5) 若V 的鄰接頂點col 未被訪問過,則col 進隊列。存在的一個問題是,在爬蟲抓取路徑上的很多相關網頁可能被忽略,因為最佳優(yōu)先策略是一種局部最優(yōu)搜索算法。主題網絡爬蟲的基本思路就是按照事先給出的主題,分超鏈接和已經下載的網頁內容,預測下一個待抓取的URL及當前網頁的主題相關度,保證盡可能多地爬行、下載與主相關的網頁,盡可能少地下載無關網頁。 下載網頁網絡蜘蛛最基本的功能是能夠從給定的網址下載網頁。 分解網頁網絡蜘蛛并不是單純的把網頁批量下載到本地硬盤的工具,它的目標是從網頁中提取一定的結構化的信息,比如說網頁的標題、網頁的內容、網頁的大小、網頁中的鏈接等等。 模型設計首先建立URL任務列表,即開始要爬取的URL。 數(shù)據庫結構本項目的數(shù)據庫結構很簡單,總共兩個表,一個是未站點列表,一個是網頁存儲表。Java平臺已經嵌入了幾乎所有的操作系統(tǒng)。Eclipse 還包括插件開發(fā)環(huán)境(Plugin Development Environment,PDE),這個組件主要針對希望擴展Eclipse 的軟件開發(fā)人員,因為它允許他們構建與 Eclipse 環(huán)境無縫集成的工具。 URL處理 URL抽取通過觀察研究HTML代碼,我們可以知道。所以需要判斷URL為絕對地址,還是相對地址。如果不對爬蟲進行設置,它就像一只無頭蒼蠅一樣,到處亂撞。同時對于已經訪問的URL存入數(shù)據庫是將對其進行md5壓縮。 什么是網頁標題通常瀏覽一個網頁時,通過瀏覽器頂端的藍色顯示條出現(xiàn)的信息就是“網頁標題”。,設定相關度閾值為2,網頁與主題的相關度A2,則認為該網頁與主題相關的。Jericho Html Parser的核心的類便是Source類,source類代表了html文檔,他可以從URL得到文檔或者從String得到。語法如下: synchronized(syncObject) {//允許訪問控制的代碼}synchronized 塊是這樣一個代碼塊,其中的代碼必須獲得對象 syncObject (如前所述,可以是類實例或類)的鎖方能執(zhí)行,具體機制同前所述。visitedUrl存放已經訪問過的URL,用于在解析出來的新的URL進行添加時,進行判斷是否已經訪問過,若已經訪問過,舍棄。 !().equals() amp。 // 設置 Http 連接超時 6s ().setParameter( , 6000)。 } else { /* HTTP 響應內容 */ HttpEntity Entity = ()。 // 根據正則表達式,篩選出符合規(guī)則的有效URL matcher = (var)。 } // 隊頭URL出隊列 visitUrl = (String) ()。前面已經介紹了數(shù)據庫表的設計,本節(jié)找介紹數(shù)據庫操作的邏輯。//記錄集的指針指向第一條上方獲取第一條必須下移比如說 (name)。 if (vis 200)// 已經訪問的URL達到200 ()。尤其是到對臨界資源進行操作時,更應
點擊復制文檔內容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1