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

正文內(nèi)容

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

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

下一頁面
  

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