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

正文內(nèi)容

基于java的網(wǎng)絡(luò)蜘蛛程序算法研究-文庫吧資料

2024-11-15 22:00本頁面
  

【正文】 enum{InternalLink,ExternalLink,OtherLink}。//隊(duì)列類型:等待、完成、處理、錯(cuò)誤隊(duì)列。//用一個(gè) URL 集合初始化網(wǎng)絡(luò)機(jī)器人。當(dāng)?shù)却?duì)列為空并且當(dāng)前沒有處理任何網(wǎng)頁,網(wǎng)絡(luò)機(jī)器人就會停止它的工作。 URL 處理狀態(tài)流程圖 : 發(fā)現(xiàn) URL 錯(cuò)誤隊(duì)列 完成 URL 完成隊(duì)列 等待隊(duì)列 處理隊(duì)列 圖 1 URL 處理狀態(tài)流程圖 算法分析 我 們的算法設(shè)計(jì)主要就是依據(jù)非遞歸的思想構(gòu)造的,當(dāng)一個(gè) URL 被加入到等待隊(duì)列中時(shí),網(wǎng)絡(luò)機(jī)器人就會開始運(yùn)行。 完成隊(duì)列 :如果在下載網(wǎng)頁時(shí)沒有發(fā)生錯(cuò)誤,該 URL 將被加入到完成隊(duì)列中。 錯(cuò)誤隊(duì)列 :如果在處理該網(wǎng)頁時(shí)發(fā)生了錯(cuò)誤,它的 URL 將被加入到錯(cuò)誤隊(duì)列中。 處理隊(duì)列 :當(dāng)網(wǎng)絡(luò)機(jī)器人開始處理時(shí),它們被傳送到這個(gè)隊(duì)列。 實(shí)際工作的時(shí)候網(wǎng)絡(luò)機(jī)器人總共使用了四個(gè)隊(duì)列,每個(gè)這樣的隊(duì)列保存著同一處理狀態(tài)的 URL,它 們?nèi)缦拢? 等待隊(duì)列 :在這個(gè)隊(duì)列中, URL 等待被網(wǎng)絡(luò)機(jī)器人處理。網(wǎng)絡(luò)機(jī)器人發(fā)現(xiàn)每個(gè)新的網(wǎng)頁時(shí)不使用調(diào)用自身的方法,而是將新發(fā)現(xiàn)的鏈接加入到該隊(duì)列中。所以開發(fā)高性能的網(wǎng)絡(luò)機(jī)器人程序不能采用遞歸的程序設(shè)計(jì)思想。 程序的設(shè)計(jì)思想 開發(fā)和設(shè)計(jì)網(wǎng)絡(luò)機(jī)器人程序有兩種思想可以選擇:一種就是將程序設(shè)計(jì)為遞歸的程序;另一種就是將程序設(shè)計(jì)為非遞歸的程序。網(wǎng)絡(luò)機(jī)器人程序通過分析網(wǎng)頁的 HTML代碼查找網(wǎng)頁內(nèi)所有鏈接到其它網(wǎng)頁的標(biāo)簽,根據(jù)標(biāo)簽的屬性 HREF(Hypertext Reference,超文本鏈接 )的值,網(wǎng)絡(luò)機(jī)器人程序?qū)龅饺N鏈接類型:內(nèi)部鏈接( Internal link)、外部鏈接 (External link)和其它連接 (other link)。 將多線程技術(shù)、數(shù)據(jù)庫技術(shù)和 JDBC 這些技術(shù)有效的結(jié)合在一起,我們就能創(chuàng)建高性能 的網(wǎng)絡(luò)機(jī)器人程序。 Java 為我們提供一組成為 JDBC(Java Database Connectivity,Java 數(shù)據(jù)庫互連 )的類來訪問 的用途是允許向數(shù)據(jù)庫發(fā)送 SQL 語句,從而讓你指定希望從數(shù)據(jù)庫返回的數(shù)據(jù)。利用 DBMS(Database Management System)管理大型的網(wǎng)頁列表能大大緩解內(nèi)存的使用,提高網(wǎng)絡(luò)機(jī)器人程序的運(yùn)行效率。如果網(wǎng)絡(luò)機(jī)器人程序訪問大型的 Web 服務(wù)器時(shí),利用基于內(nèi)存來存儲和管理大型站點(diǎn)的列表,就會顯得速度很慢,消耗計(jì)算機(jī)資源越來越多,最終導(dǎo)致網(wǎng)絡(luò)機(jī)器人的工作效率大大下降。 數(shù)據(jù)庫技術(shù) 網(wǎng)絡(luò)機(jī)器人程序必須跟蹤它所遇到的每一個(gè) URL(Uniform Resource Locator),對這個(gè) URL 列表的管理就是網(wǎng)絡(luò)機(jī)器人程序的作業(yè)管理,作業(yè)管理對于一個(gè)高效的網(wǎng)絡(luò)機(jī)器人程序是非常重要的,這是因?yàn)榫W(wǎng)絡(luò)機(jī)器人程序必須跟蹤所訪問的上千個(gè)網(wǎng)頁的數(shù)據(jù)。 網(wǎng)絡(luò)機(jī)器人程序需要下載數(shù)十個(gè)甚至成百上千的網(wǎng)頁,如果我們采用單線程來完成這一任務(wù),效率是十分低的,程序的瓶頸就在于網(wǎng)絡(luò)機(jī)器人程序在向服務(wù)器發(fā)出下載網(wǎng)頁的請求后必須等待服務(wù)器的響應(yīng),可想而知,單線程技術(shù)需要一個(gè)接一個(gè)地去等待服務(wù)器的對請求的響應(yīng),等待時(shí)間將是對每一個(gè)網(wǎng)頁請求等待響應(yīng)的時(shí)間累加。 多線程技術(shù) 對于一個(gè)程序員來說,要掌握多線程的編程技術(shù)確實(shí)有些難度,但更難的是,要確定什么時(shí)候需 要用到多線程技術(shù)、怎么劃分線程。如果編寫的程序是扮演服務(wù)器的角色,就應(yīng)該采用 ServerSocket 類;如果程序是連接到服務(wù)器的那么他扮演的是客戶端的角色,我們 應(yīng)該使用 Socket 類
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1