999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看

404 Not Found


nginx
404 Not Found

404 Not Found


nginx
404 Not Found

404 Not Found


nginx
404 Not Found

404 Not Found


nginx
404 Not Found

404 Not Found


nginx
404 Not Found

404 Not Found


nginx

基于Swing 的HTML解析器的實現與應用

2024-08-31 00:00:00宋宇
科技資訊 2024年14期

摘要:HTML頁面解析是一切工作的基礎,通過分析HTML解析器感興趣的標簽以及超鏈接的分類,在Java的Swing包的基礎上實現了一個HTML解析器,用來提取HTML文檔的超鏈接和錨文本;然后把HTML解析器應用到多媒體信息檢索系統的搜索器Spider的開發中,通過設定若干個種子網站,選擇合適的搜索算法,從中篩選出包含音頻、視頻和Flash動畫的web頁面,并將其存放在數據庫中。

關鍵詞:解析器HTMLSwing超文本鏈接鏈接文本

中圖分類號:G250

ImplementationandApplicationofHTMLParserBasedonSwing

SONGYu

LibraryofNanjingUniversityofChineseMedicine,Nanjing,JiangsuProvince,210023China

Abstract:HTMLpageparsingisthefoundationofallwork.ByanalyzingthetagsandclassificationofhyperlinksthatHTMLparsersareinterestedin,anHTMLparserhasbeenimplementedbasedonJava'sSwingpackagetoextracthyperlinksandanchortextfromHTMLdocuments; Then,theHTMLparserisappliedtothedevelopmentofthesearchengineSpiderformultimediainformationretrievalsystems.Bysettingseveralseedwebsitesandselectingappropriatesearchalgorithms,webpagescontainingaudio,video,andFlashanimationsarefilteredoutandstoredinadatabase.

KeyWords:Parser;HTML;Swing;Hyperlink;Linktext

HTML是一種標記語言,其目的在于運用標記(tag)使文件達到預期的顯示效果;由于其簡單易學的特點,就算在各種Web設計語言競爭發展的今天,它在Web設計中仍然具有無法被取代的地位,受到眾多Web設計人員的青睞;很多情況下,只需要HTML文檔中的部分信息,基于這種需求,HTML的解析技術受到許多人的關注;盡管現在有好多現成類似的例子程序,但它們提取的信息未必適合需求,因此仍然需要編制符合要求的HTML解析器。

本文在Java的Swing包的基礎上,對解析Web頁面遇到的困難給以分析并提出相應的解決辦法,對其中的關鍵技術給出詳細說明,實現了一個用于提取超鏈接的HTML解析器;并把該解析器用用到多媒體信息檢索系統的搜索器Spider[1-3]的開發中。

1HTML解析器的實現

Java中Swing[4]包的HTML解析器類Parser是HTMLEditorKit類的內部類,本文主要就是利用Parser類實現對HTML解析器的構建。

1.1解析器感興趣的標簽

HTML文檔標簽[5]大致分為兩類:一類是傳輸數據的標簽,如paragraph、table等,它們顯示web站點包含的信息;第二類是基礎結構標簽(infrastructuretags),這類標簽指示瀏覽器如何從當前頁面跳轉到其他頁面,常見的有<A>、<Area>和<Form>,這類標簽需要提取。由于最終要提取出包含音頻、視頻和Flash動畫的頁面,因此還需要提取包含這些多媒體數據的標簽。在web頁面中,這些多媒體數據可以以鏈接的形式出現,也可以嵌入Web頁面中,以鏈接形式出現的多媒體數據包含在標簽<A>中,嵌入Web頁面中的多媒體數據包含在標簽<object>和<embed>中。<embed>標簽是Netscape的私有標簽,用于Windows和Macintosh平臺下的NetscapeNavigator瀏覽器以及Macintosh平臺下的IE瀏覽器,這個標簽應用雖然廣泛,但并未被w3c收錄,因此使用此標簽的Web頁面將通不過w3c校驗。<object>標簽w3c推薦使用,用于Windows平臺的IE瀏覽器,但這個標簽在IE5-IE6/Win上必須下載完才能正常顯示。為了中和這兩者之間的矛盾,幾乎所有的Web設計者在嵌入多媒體數據時,同時使用這兩個標簽即把<embed>標簽嵌套放在<object>標簽內;因為這兩者包含的多媒體文件是同一個,因此在實際提取過程中,只提取一個即可;由于<embed>標簽未被w3c收錄,所以在Swing包中并不支持這個標簽,因此只通過<object>標簽來提取(其實多媒體文件的路徑是包含在這個標簽的<param>標簽中);除此之外,還要提取標簽<Base>和<Frame>,各標簽的作用如表1所示。

1.2超鏈接解析與分類

該解析器重點解析的信息是超鏈接,超鏈接包括鏈接地址URL和鏈接文本,其中鏈接地址URL包括兩類:絕對URL和相對URL。絕對URL是包含首頁域名的完整的網址,帶有http和www的鏈接,唯一確定一個頁面,而相對URL是不完整的,它依賴于它所在的頁面,要想解析相對URL,必須將它轉換為絕對URL。

頁面中的超鏈接反映的是頁面相互之間的邏輯關系,按照不同的標準和目的,可以區分為不同的類別。本文根據需要,把超鏈接分為站內鏈接和站外鏈接。對于站內鏈接又分為四類:(1)下行鏈,目標頁面是當前頁面的下級頁面;(2)上行鏈,目標頁面是當前頁面的上級頁面;這兩種類型是定義在Web站點邏輯層次結構的垂直方向上的,統稱為垂直鏈;(3)水平鏈,目標頁面和當前頁面處于同一目錄;(4)交叉鏈,目標頁面和當前頁面不在同一路徑上。從以上描述可以看出,這種分類方法是根據頁面的物理結構來區分的。超鏈接分類如圖1所示。

2.3實現過程

(1)建立TCP連接:首先通過DNS解析獲取改頁面對應的IP地址,然后通過URLConnection建立與TCP連接,這個過程包括3次握手,以確保連接的可靠性。

(2)發起HTTP請求:向服務器發送HTTP請求,請求中包含請求行、請求頭和請求正文。請求行描述了客戶端的請求方式、請求的資源名稱以及使用的HTTP協議版本號。

(3)服務端進行HTTP響應:服務器接收到請求后,返回一個HTTP響應,該響應由狀態碼、響應頭和實體內容組成。狀態碼用于表示服務器對請求的處理結果,如2xx表示請求成功,4xx表示客戶端發生錯誤等。如果成功,將網頁HTML代碼通過輸入流讀入閱讀器Reader中。

(4)調用解析器HTMLEditorKit.Parser對象的parse()方法,對HTML文檔進行實際地解析。

(5)當遇到<A>、<Area>、<Map>等包含鏈接地址的標簽,則提取出該標簽的屬性HREF值。

(6)同時提取該鏈接的錨文本,以作為該鏈接的內容描述,并確保鏈接URL值與錨文本之間的一一對應關系。

(7)將所有提取出來的鏈接URL和錨文本一并存入數據庫中。

2HTML解析器的系統應用

將第二部分設計的HTML解析器應用到多媒體信息檢索系統的搜索器Spider的開發中。首先給定若干種子網站,然后利用本文第二部分構造的HTML解析器、按照寬度優先的爬行策略遍歷每個種子網站,提取出種子網站里所有包含音頻、視頻、Flash動畫的網頁。由于該搜索器剛開始做,所以目前只是在功能上的實現,效率不是太高,爬行策略會在接下來的研究中繼續優化。該系統大體包括5個模塊:種子鏈接初始化模塊、HTML解析模塊、爬行模塊、目標網頁提取模塊、存儲模塊。

在該系統中,HTML解析模塊在本文的第二部分有詳細的說明,在此就不在展開敘述,該部分重點對該系統的其他4個模塊的作用與實現進行闡述。

2.1種子鏈接初始化模塊

種子鏈接的提供一般有3種方法。第一種是手工尋找,這種方法由于有了人的判斷與篩選,選擇出的種子鏈接的質量比較高,它一般包含較多的目標頁面;其缺點也是顯而易見,這種方法耗時耗力。第二種方法是通過元搜索引擎來提供,這種方法與第一種方法相反,雖然省去了人工的找尋階段,但其提供的種子鏈接的質量沒有保證。第三種方法是允許用戶把他們自己的網站提交,經確認后加入種子鏈接列表,這種方法一般作為一種輔助手段,來配合前兩種方法進行。由于目前這個系統還在試驗階段,并為投入運行,因此手工選擇了20個包含音頻、視頻、Flash動畫較多的網站進行測試,在以后會加入其他兩種方法來進行種子鏈接的初始化。

2.2爬行模塊

在這一模塊,利用第二部分設計的HTML解析器,提取出頁面的所有鏈接,通過對鏈接進行過濾,只保留與網頁文本的鏈接,然后按照寬度優先的訪問策略依次遍歷所有鏈接。在此,為了盡量避免遍歷到無關鏈接,對鏈接的訪問進行控制,指訪問其內部鏈接,而對外部鏈接暫時不考慮(但會在以后的研究中對其價值進行判斷,據此來決定此鏈接的取舍)。其判斷方法如下:將超鏈接的URL地址與源網頁的URL地址進行比較,如果兩地址只是在最后一個“/”間隔符后面的字符不同,則此鏈接為內部鏈接,稱此鏈接與源鏈接有“親族”關系,按照與源鏈接的遠近,又將這種“親族”關系細分為“父子”關系(指在物理存儲上該鏈接位于源鏈接所在目錄的一個子目錄中)和“兄弟”關系(指在物理存儲上該鏈接與源鏈接處在同一目錄下),若該鏈接與源鏈接不是“親族”關系,將其舍棄;通過這種處理后,每個種子鏈接將形成一棵“鏈接樹”,通過這棵樹對該網站的鏈接進行大體分類,每個類別下的網頁存在某種程度的相關性,為將來尋找目標頁面提供了便利;多個種子鏈接將形成多棵“鏈接樹”,它們共同形成“超鏈接樹林”;

為了避免對鏈接的重復訪問,為每個鏈接設置了訪問狀態,通過訪問狀態把所有的鏈接分為4個隊列:(1)等待隊列,處于該隊列的鏈接表示等待被訪問,訪問狀態為W;(2)運行隊列,處于該隊列的鏈接表示正在被訪問,訪問狀態為R;(3)完成隊列,處于該隊列的鏈接表示已經被訪問完畢,訪問狀態為C;(4)錯誤隊列,處于該隊列的鏈接表示在訪問過程中發生錯誤,訪問狀態為E;在任一時刻,一個鏈接只能屬于一個隊列,稱之為鏈接狀態,一個鏈接的鏈接狀態轉換如圖2所示。

2.3目標網頁提取模塊

這一模塊的作用是在爬行模塊形成的“超鏈接樹林”中尋找包含音頻、視頻、Flash動畫的頁面,目前采用的方法比較簡單:依次取出“超鏈接樹林”中的每個鏈接進行訪問,通過本文第二部分構造的HTML解析器獲得每個鏈接頁面中的所有鏈接,如果所有的這些鏈接中有以音頻、視頻、Flash動畫的擴展名結尾的鏈接,將該鏈接對應的頁面提取出來作為目標頁面。這種方法簡單易行,并且不會漏掉目標頁面,即查全率比較高;但其缺點也很明顯,因為這種方法要對每個鏈接都要判斷一遍,所以效率太低,即查準率太低。下一步會對這一模塊重點進行改進,對每一鏈接的價值根據頁面內容和鏈接結構等提示性信息進行判斷,根據鏈接的價值大小,決定是否訪問此鏈接及訪問的順序。

2.4存儲模塊

在這一模塊,采用Access數據庫分五個表對數據進行存儲,第一張表是SeedLink,這張表用來存放種子鏈接,其結構如圖3所示。

第二張表是CrawlerLink這張表用來存放中間鏈接,即從種子鏈接中得到的所有內部鏈接,也就是在爬行模塊中提到的“超鏈接樹林”中的所有鏈接,之所以也把中間鏈接也存儲在數據庫中而沒有放到內存中,是因為隨著鏈接的增多,在內存中存放鏈接時,其運行效率會逐漸下降,其結構如圖4所示。

第三張表是Video,第四張表是Audio,第五章表是Flash,這3張表是用來存放包含視頻、音頻和動畫的頁面信息,其結構相似,表Video的結構如圖5所示。

3結語

對HTML文檔進行解析是好多與網頁進行交互系統的基礎,由于各個系統的目的不同,對網頁元素的提取也各不相同,因此不存在一個通用的HTML解析器,因此本文構造了一個用來提取網頁鏈接及鏈接文本的HTML解析器,并把此解析器應用到多媒體信息檢索系統的搜索器Spider的開發中,目前該系統尚處在實驗階段,只是在功能上的實現,對爬行算法并未進行優化,在下一步的工作中,將在爬行算法上進一步研究。

參考文獻

[1]劉曉旭.主題網絡爬蟲研究綜述[J].電腦知識與技術,2024,20(8):97-99.

[2]郭婺,郭建,張勁松,等.基于Python的網絡爬蟲的設計與實現[J].信息記錄材料,2023,24(4):159-162.

[3]古志敏,吳明珠.基于Python網絡爬蟲設計與實現[J].電腦編程技巧與維護,2023(9):163-166.

[4]王勇,洪進,杜蘭蘭,等.基于JavaSwing的找點軟件設計與實現[J].現代計算機,2022,28(16):96-100.

[5]楊大為,王詩念,包立巖,等.基于文本及HTML標簽密度的網頁正文提取[J].沈陽理工大學學報,2022,41(4):14-19.

404 Not Found

404 Not Found


nginx
404 Not Found

404 Not Found


nginx
404 Not Found

404 Not Found


nginx
404 Not Found

404 Not Found


nginx
404 Not Found

404 Not Found


nginx
主站蜘蛛池模板: 欧美亚洲第一页| 国产精品亚洲专区一区| 99精品国产电影| 国产微拍精品| 国产成人你懂的在线观看| 国产成人精品三级| 亚洲三级a| 国产jizz| 国产在线观看精品| 第一区免费在线观看| 国产成人综合日韩精品无码首页| 久996视频精品免费观看| 国产亚洲欧美另类一区二区| 精品国产污污免费网站| 香蕉视频国产精品人| 狠狠色综合网| 九九热精品在线视频| 性欧美精品xxxx| 人妻无码中文字幕一区二区三区| 欧美日韩免费观看| 91精品免费久久久| 国产成人h在线观看网站站| 人妻精品久久无码区| 久久人妻系列无码一区| 91在线无码精品秘九色APP | 在线看AV天堂| 欧美精品另类| 综合久久五月天| 欧美午夜视频在线| 亚洲综合在线网| 国产三区二区| 国产丰满大乳无码免费播放| 国产欧美日韩一区二区视频在线| 精品综合久久久久久97超人该| 国产精品yjizz视频网一二区| a色毛片免费视频| 国产女人18毛片水真多1| 久久特级毛片| 波多野结衣久久高清免费| 久久精品91麻豆| 欧美日韩国产高清一区二区三区| 欧美亚洲香蕉| 成人午夜在线播放| 国产精品成人啪精品视频| 欧美视频免费一区二区三区| 一级毛片免费观看久| 婷婷亚洲最大| 91麻豆国产精品91久久久| 天天摸夜夜操| 午夜毛片福利| 中文字幕永久在线看| 精品91在线| 国产av一码二码三码无码 | 亚洲精品第五页| 黄色国产在线| 国产美女视频黄a视频全免费网站| 亚洲高清在线天堂精品| 少妇精品久久久一区二区三区| 一级毛片无毒不卡直接观看| 青青操国产| 亚洲成a人片| 熟女日韩精品2区| 国产农村1级毛片| 午夜视频免费试看| 在线免费不卡视频| 亚洲伦理一区二区| 精品国产成人a在线观看| 操操操综合网| 国产一区二区影院| 毛片a级毛片免费观看免下载| 亚洲人免费视频| 国产一区二区人大臿蕉香蕉| 亚洲一级毛片免费看| 福利小视频在线播放| 国产成人亚洲综合a∨婷婷| 成人午夜在线播放| 午夜在线不卡| 91小视频在线播放| 五月天天天色| 亚洲综合色吧| 国产精品所毛片视频| 一级成人欧美一区在线观看|