邵崇潔 陳麗君 徐貝 丁特戰(zhàn)
摘要:隨著Internet的不斷發(fā)展,Deep Web已經(jīng)成為Web上重要的信息資源,Deep Web表單標(biāo)簽提取是訪問Deep Web資源的前提與基礎(chǔ)。該文提出了倒推算法來處理Deep Web表單標(biāo)簽。
關(guān)鍵詞:深層網(wǎng);表單標(biāo)簽;倒推算法;查詢
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)16-3821-02
Study of Deep Web Form-tag Extraction
SHAO Chong-jie, CHEN Li-jun, XU Bei, DING Te-zhan
(Zhejiang Yuexiu University of Foreign Languages, Shaoxin 312000, China)
Abstract: Along with the development of Internet, Deep Web has becomes important information resources, Deep Web form-tag extrac tion is the premise and foundation of access Deep Web resource. This paper designs retrodict algorithm to handle Deep Web form-tag.
Key words: deep Web; form-tag; retrodict algorithm; query
整個(gè)Web網(wǎng)絡(luò)看似雜亂無(wú)章,但如果按其所蘊(yùn)含信息“深度”,可以將其劃分為Surface Web和Deep Web兩大類。前者主要是指通過瀏覽器瀏覽的網(wǎng)頁(yè),它們可以被Google等搜索引擎直接檢索。后者通常是指隱蔽在查詢表單后面,由網(wǎng)站在需要時(shí)動(dòng)態(tài)生成的網(wǎng)頁(yè),這些網(wǎng)頁(yè)不能被傳統(tǒng)的搜索引擎直接檢索。
隨著數(shù)據(jù)庫(kù)技術(shù)和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,Deep Web已經(jīng)成為Web上重要的信息資源。有研究表明[1],Deep Web具有信息量大、覆蓋面廣、結(jié)構(gòu)化程度高、增長(zhǎng)速度快等特點(diǎn)。由于表單是訪問Deep Web資源的唯一途徑,傳統(tǒng)的搜索引擎通過鏈接訪問頁(yè)面,缺少自動(dòng)處理表單的能力,長(zhǎng)期以來Deep Web資源得不到搜索引擎的索引和檢索,因此,研究如何對(duì)表單進(jìn)行處理以獲取大量高質(zhì)量的Deep Web資源具有非常重要的現(xiàn)實(shí)意義。
1 Deep Web表單
一個(gè)表單通常包含有說明性文字、表單控件、控件標(biāo)簽等內(nèi)容,其用途包括注冊(cè)、投票、登錄、查詢等。Deep Web表單是專指用作查詢功能的表單。當(dāng)用戶提出請(qǐng)求使用表單查詢時(shí),首先從服務(wù)器下載表單供用戶瀏覽,用戶根據(jù)控件標(biāo)簽、文字說明等信息向表單控件填寫查詢條件等內(nèi)容并提交,Web服務(wù)器通過專門的CGI接口接收用戶提交的查詢請(qǐng)求,并根據(jù)要求做出響應(yīng),將請(qǐng)求的查詢結(jié)果反饋給查詢用戶。用戶使用Deep Web表單的過程如圖1所示。
2 Deep Web表單標(biāo)簽提取
Deep Web表單標(biāo)簽提取一般包括兩個(gè)步驟:Deep Web表單識(shí)別和Deep Web表單標(biāo)簽識(shí)別和提取。
2.1 Deep Web表單識(shí)別
在Web中存在各式各樣的表單,因此在進(jìn)行標(biāo)簽提取之前,首先要過濾掉非查詢表單的干擾,識(shí)別出作為查詢功能的Deep Web表單。其識(shí)別過程如圖2所示。
圖2Deep Web表單識(shí)別
URL隊(duì)列中的URL由網(wǎng)絡(luò)爬蟲從一個(gè)初始的URL集出發(fā)采集迭代所得到。這里識(shí)別一個(gè)表單是否為Deep Web表單,采用了3種啟發(fā)式規(guī)則:①URL的深度,②頁(yè)面的密碼框控件,③頁(yè)面表單中的可輸入控件數(shù)量。如果一個(gè)表單達(dá)不到以上要求,則認(rèn)為該表單不是Deep Web表單而丟棄。
2.2 Deep Web表單標(biāo)簽識(shí)別與提取
表單標(biāo)簽提取是進(jìn)行表單填充的前提,表單標(biāo)簽提取的準(zhǔn)確與否直接關(guān)系到表單填充[2]。用戶可以通過眼睛瀏覽和識(shí)別表單控件,從而理解表單對(duì)表單做相應(yīng)的處理,但要由機(jī)器來自動(dòng)完成這一系列動(dòng)作卻是一件困難的事,因?yàn)楸韱卧谠O(shè)計(jì)時(shí)是面向用戶,而不是面向機(jī)器,即機(jī)器做不到像人那樣“理解”表單控件的真正含義。雖然在HTML標(biāo)準(zhǔn)中有l(wèi)abel標(biāo)記專門指示表單控件的標(biāo)簽,但已有實(shí)驗(yàn)表明[3],實(shí)際上label標(biāo)記很少被網(wǎng)站采用。
該文提出一種倒推算法(Retrodict Algorithm),其基本思想為:按序讀取整個(gè)表單的元素(分為文本與非文本兩種)放入隊(duì)列,根據(jù)非文本元素(即表單或表單控件)的標(biāo)簽特點(diǎn),從隊(duì)列中讀取文本和非文本元素進(jìn)行搭配組合。算法具體步驟如下:
①將提取的表單元素分為文本和非文本分別放入相應(yīng)的隊(duì)列;
②若該元素為文本,則檢查其前一個(gè)元素是否為復(fù)選框或是單選按鈕:
如果是,則該文本為復(fù)選框或單選按鈕的標(biāo)簽;
如果不是,則檢查臨時(shí)列表是否為空:
若臨時(shí)列表僅包含一個(gè)控件,則為該控件的標(biāo)簽;否則,作進(jìn)一步分析;
③若該元素為按鈕,則沒有標(biāo)簽,丟棄臨時(shí)列表中的內(nèi)容;
④若該元素為表單,則丟棄臨時(shí)列表內(nèi)容,并讀取下一個(gè)元素,返回到②;
⑤若該元素為label標(biāo)記,則直接返回到②;
⑥若該元素為復(fù)選框或單選按鈕,則將其添加到臨時(shí)列表;
⑦若該元素為文本框或下拉框:
如果其前一個(gè)元素為文本:
如果再前一個(gè)元素為復(fù)選框或單選按鈕,則該元素沒有標(biāo)簽;
如果臨時(shí)列表為空,則其前一個(gè)元素為該元素的標(biāo)簽;
否則,加入臨時(shí)列表;
否則,加入臨時(shí)列表;
⑧返回到②直到判斷完所有元素。
為驗(yàn)證算法的有效性,文章采用了伊利諾伊大學(xué)的數(shù)據(jù)集[4]進(jìn)行測(cè)試。
3結(jié)束語(yǔ)
Deep Web表單標(biāo)簽提取與處理是訪問Deep Web資源的前提與基礎(chǔ),它為機(jī)器自動(dòng)進(jìn)行表單處理提供可能,為擴(kuò)大搜索引擎的信息覆蓋范圍搭建橋梁,從而可以更好地為人們提供信息檢索服務(wù)。該文設(shè)計(jì)一種倒推算法,將表單標(biāo)簽和表單控件按一定的規(guī)則進(jìn)行組合,從而使計(jì)算機(jī)能夠“理解”各個(gè)表單控件的含義,為獲取Deep Web資源做好準(zhǔn)備。
參考文獻(xiàn):
[1] Chang K, He B, Li C,et al. Structured databases on the Web: Observations and implications. ACM SIGMOD Record, 2004,33(3):61-70.
[2]馬建華,李賽紅,徐蘭蘭.深層網(wǎng)中基于入口查詢的表單填充策略[J].計(jì)算機(jī)工程, 2010(4):66-67.
[3]陳麗君.深層網(wǎng)查詢表單標(biāo)簽識(shí)別技術(shù)研究[J].電腦開發(fā)與應(yīng)用, 1010,23(2):66-68.
[4] TEL-8 Query Interfaces[EB/OL].http://metaquerier.cs.uiuc.edu/repository/datasets/tel-8/browsable.