亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

網(wǎng)頁信息抽取方法及裝置與流程

文檔序號:12597749閱讀:281來源:國知局
網(wǎng)頁信息抽取方法及裝置與流程

本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及網(wǎng)頁信息抽取方法及裝置。



背景技術(shù):

眾所周知,在現(xiàn)有技術(shù)中在進行網(wǎng)頁信息抽取時,通常采用特征詞,依靠特征詞來定位待抽取信息的位。由于采用特征詞進行定位時需要對網(wǎng)站中的特征詞進行再三提煉;同時,過于通用的特征詞在特定的網(wǎng)頁中會造成誤判,而過于特殊的特征詞則難以適用于其它網(wǎng)頁的抽取。因此在這種抽取方法中需要利用分詞和文本語義識別技術(shù),以提高信息抽取的準確度;但是由于采用分詞和文本語義識別技術(shù),導(dǎo)致了信息抽取的難度較大。



技術(shù)實現(xiàn)要素:

本發(fā)明實施例的主要目的是提供一種網(wǎng)頁信息抽取方法及裝置,旨在降低信息抽取的操作難度。

為實現(xiàn)上述目的,本發(fā)明實施例提供了一種網(wǎng)頁信息抽取方法,所述網(wǎng)頁信息抽取方法包括以下步驟:

接收到信息抽取請求時,根據(jù)網(wǎng)頁中HTML元素建立節(jié)點樹;

根據(jù)所述信息抽取請求中預(yù)設(shè)的配置信息在所述節(jié)點樹中確定待抽取信息的目標位置;

抽取所述目標位置對應(yīng)的信息。

此外,為了實現(xiàn)上述發(fā)明目的,本發(fā)明實施例還提供了一種網(wǎng)頁信息抽取裝置,所述網(wǎng)頁信息抽取裝置包括:

建模模塊,用于接收到信息抽取請求時,根據(jù)網(wǎng)頁中HTML元素建立節(jié)點樹;

確定模塊,用于根據(jù)所述信息抽取請求中預(yù)設(shè)的配置信息在所述節(jié)點樹 中確定待抽取信息的目標位置;

抽取模塊,用于抽取所述目標位置對應(yīng)的信息。

本發(fā)明實施例通過接收到信息抽取請求時,根據(jù)網(wǎng)頁中HTML元素建立節(jié)點樹;然后根據(jù)所述信息抽取請求中預(yù)設(shè)的配置信息在所述節(jié)點樹中確定待抽取信息的目標位置;最后抽取所述目標位置對應(yīng)的信息;以完成網(wǎng)頁中進行信息抽取的操作。由于在進行信息抽取時,本發(fā)明實施例是基于由HTML文本生成的節(jié)點樹,在節(jié)點樹上進行信息抽取;相對于現(xiàn)有技術(shù)采用文本分詞和語義識別,進行信息抽取的方式,本發(fā)明實施例可以降低信息抽取的操作難度,從而從整體上降低HTML網(wǎng)頁中信息的抽取成本。

附圖說明

圖1是本發(fā)明網(wǎng)頁信息抽出裝置第一實施例的硬件框架結(jié)構(gòu)示意圖;

圖2是本發(fā)明網(wǎng)頁信息抽出裝置第二實施例的功能模塊結(jié)構(gòu)示意圖;

圖3是本發(fā)明網(wǎng)頁信息抽出裝置第三實施例的功能模塊結(jié)構(gòu)示意圖;

圖4是本發(fā)明網(wǎng)頁信息抽出裝置中建模模塊的第一實施例的細化功能模塊結(jié)構(gòu)示意圖;

圖5是本發(fā)明網(wǎng)頁信息抽出裝置中HTML文本示例圖;

圖6是根據(jù)圖5解析后得到的節(jié)點樹;

圖7是本發(fā)明網(wǎng)頁信息抽出裝置中建模模塊的第二實施例的細化功能模塊結(jié)構(gòu)示意圖;

圖8是本發(fā)明網(wǎng)頁信息抽出方法第一實施例的流程示意圖;

圖9是本發(fā)明網(wǎng)頁信息抽出方法第二實施例的流程示意圖;

圖10是本發(fā)明網(wǎng)頁信息抽出方法第三實施例的流程示意圖;

圖11是本發(fā)明網(wǎng)頁信息抽出方法建立節(jié)點樹中第一實施例的細化流程示意圖;

圖12是本發(fā)明網(wǎng)頁信息抽出方法建立節(jié)點樹中第二實施例的細化流程示意圖。

本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步 說明。

具體實施方式

以下結(jié)合說明書附圖及具體實施例進一步說明本發(fā)明的技術(shù)方案。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

參照圖1,提出本發(fā)明網(wǎng)頁信息抽出裝置第一實施例。該實施例中,該網(wǎng)頁信息抽出裝置包括:處理器111、存儲器112、用戶接口113、網(wǎng)絡(luò)接口114及通信總線115。通信總線115用于數(shù)據(jù)服務(wù)器中各組成部件之間的通信,用戶接口113用于接收用戶輸入的信息,該用戶接口可以為有線接口及無線接口,例如鍵盤、鼠標等。網(wǎng)絡(luò)接口114用于數(shù)據(jù)服務(wù)器與外部進行互相通信,該網(wǎng)絡(luò)接口114也可以包括有線接口及無線接口。存儲器112可以包括一個或一個以上計算機可讀存儲介質(zhì),而且其不但包括內(nèi)部存儲器,還包括外部存儲器。該存儲器中存儲有操作系統(tǒng)及網(wǎng)頁信息抽出程序等等。處理器111用于調(diào)用存儲器112中的網(wǎng)頁信息抽出程序,以執(zhí)行以下操作:

接收到信息抽取請求時,根據(jù)網(wǎng)頁中HTML元素建立節(jié)點樹;

根據(jù)所述信息抽取請求中預(yù)設(shè)的配置信息在所述節(jié)點樹中確定待抽取信息的目標位置;

抽取所述目標位置對應(yīng)的信息。

進一步地,處理器111還用于調(diào)用存儲器112中的網(wǎng)頁信息抽出程序,以執(zhí)行以下操作:

所述接收到信息抽取請求時,根據(jù)網(wǎng)頁中HTML元素建立節(jié)點樹之前還包括:

根據(jù)所述待抽取信息的類型和所述待抽取信息在所述節(jié)點樹中的位置按照預(yù)置規(guī)則生成配置信息;

根據(jù)所述配置信息生成信息抽取請求。

進一步地,處理器111還用于調(diào)用存儲器112中的網(wǎng)頁信息抽出程序,以執(zhí)行以下操作:

所述根據(jù)所述信息抽取請求中預(yù)設(shè)的配置信息在所述節(jié)點樹中確定待抽取信息的目標位置包括:

根據(jù)所述待抽取信息的類型和所述待抽取信息在所述節(jié)點樹中的位置, 按照樹遍歷算法確定所述目標位置。

進一步地,處理器111還用于調(diào)用存儲器112中的網(wǎng)頁信息抽出程序,以執(zhí)行以下操作:

所述接收到信息抽取請求時,根據(jù)網(wǎng)頁中HTML元素建立節(jié)點樹包括:

接收到信息抽取請求時,解析HTML文本內(nèi)容;

當解析到HTML元素的開始標簽時,將當前解析到的HTML元素設(shè)定為目標節(jié)點繼續(xù)解析;

將解析獲得的非HTML元素內(nèi)容的字符串以子節(jié)點的形式添加在所述目標節(jié)點下,并判斷是否再次解析到HTML元素的開始標簽;

若是,則將當前解析到的HTML元素設(shè)定為所述目標節(jié)點的子節(jié)點;然后將所述子節(jié)點設(shè)定為目標節(jié)點繼續(xù)解析,并執(zhí)行所述將解析獲得的非HTML元素內(nèi)容的字符串以子節(jié)點的形式添加在所述目標節(jié)點下,并判斷是否再次解析到HTML元素的開始標簽的步驟;

若否,則在解析到的所述目標節(jié)點對應(yīng)HTML元素的結(jié)束標簽為非首個HTLM元素對應(yīng)的HTML元素的結(jié)束標簽時,將所述目標節(jié)點的父節(jié)點設(shè)置為目標節(jié)點繼續(xù)解析,并執(zhí)行所述將解析獲得的非HTML元素內(nèi)容的字符串以子節(jié)點的形式添加在所述目標節(jié)點下,并判斷是否再次解析到HTML元素的開始標簽的步驟;在解析到的所述目標節(jié)點對應(yīng)HTML元素的結(jié)束標簽為首個HTLM元素對應(yīng)的HTML元素的結(jié)束標簽時,結(jié)束對HTML文本內(nèi)容的解析,根據(jù)各節(jié)點的遞歸關(guān)系形成節(jié)點樹。

進一步地,處理器111還用于調(diào)用存儲器112中的網(wǎng)頁信息抽出程序,以執(zhí)行以下操作:

所述將解析獲得的非HTML元素內(nèi)容的字符串以子節(jié)點的形式添加在所述目標節(jié)點下,并判斷是否再次解析到HTML元素的開始標簽之前還包括:

當解析到所述目標節(jié)點對應(yīng)HTML元素的元素屬性和屬性值時,將所述元素屬性和屬性值設(shè)定為所述目標節(jié)點的子節(jié)點。

本發(fā)明實施例通過接收到信息抽取請求時,根據(jù)網(wǎng)頁中HTML元素建立節(jié)點樹;然后根據(jù)所述信息抽取請求中預(yù)設(shè)的配置信息在所述節(jié)點樹中確定待抽取信息的目標位置;最后抽取所述目標位置對應(yīng)的信息;以完成網(wǎng)頁中進行信息抽取的操作。由于在進行信息抽取時,本發(fā)明實施例是基于由HTML 文本生成的節(jié)點樹,在節(jié)點樹上進行信息抽?。幌鄬τ诂F(xiàn)有技術(shù)采用文本分詞和語義識別,進行信息抽取的方式,本發(fā)明實施例可以降低信息抽取的操作難度,從而從整體上降低HTML網(wǎng)頁中信息的抽取成本。

參照圖2,提供了本發(fā)明一種網(wǎng)頁信息抽取裝置的第二實施例,本實施例中提供的網(wǎng)頁信息抽取裝置包括:

建模模塊10,用于接收到信息抽取請求時,根據(jù)網(wǎng)頁中HTML元素建立節(jié)點樹;

確定模塊20,用于根據(jù)所述信息抽取請求中預(yù)設(shè)的配置信息在所述節(jié)點樹中確定待抽取信息的目標位置;

抽取模塊30,用于抽取所述目標位置對應(yīng)的信息。

本實施例提供的網(wǎng)頁信息抽取方法主要應(yīng)用于對網(wǎng)頁信息的抽取。上述HTML元素為網(wǎng)頁元素,包括元素開始標簽和元素結(jié)束標簽,例如html元素包括元素開始標簽<html>和元素結(jié)束標簽</html>。

在進行網(wǎng)頁信息抽取時,首先由用戶采用特定的語言描述待抽取的信息,然后根據(jù)描述的語言生成相應(yīng)的配置信息,根據(jù)配置信息生成信息抽出請求,當接收到該信息抽出請求時,將根據(jù)HTML元素建立節(jié)點樹(本實施例中該節(jié)點樹為DOM樹,即為HTML的文本對象模型)。然后根據(jù)該信息抽出請求中的配置信息確定待抽取信息的目標位置,最后根據(jù)確定的目標位置進行信息抽取,從而完成在網(wǎng)頁中進行信息抽取的操作。

本發(fā)明實施例通過接收到信息抽取請求時,根據(jù)網(wǎng)頁中HTML元素建立節(jié)點樹;然后根據(jù)所述信息抽取請求中預(yù)設(shè)的配置信息在所述節(jié)點樹中確定待抽取信息的目標位置;最后抽取所述目標位置對應(yīng)的信息;以完成網(wǎng)頁中進行信息抽取的操作。由于在進行信息抽取時,本發(fā)明實施例是基于由HTML文本生成的節(jié)點樹,在節(jié)點樹上進行信息抽??;相對于現(xiàn)有技術(shù)采用文本分詞和語義識別,進行信息抽取的方式,本發(fā)明實施例可以降低信息抽取的操作難度,從而從整體上降低HTML網(wǎng)頁中信息的抽取成本。

進一步地,參照圖3,基于上述實施例,在第三實施例中,上述網(wǎng)頁信息抽取裝置還包括:

配置生成模塊40,用于根據(jù)所述待抽取信息的類型和所述待抽取信息在所述節(jié)點樹中的位置按照預(yù)置規(guī)則生成配置信息;

請求生成模塊50,用于根據(jù)所述配置信息生成信息抽取請求。

本實施例中,上述預(yù)置規(guī)則可以根據(jù)實際需要進行設(shè)置,例如可以采用正則表達式或XPATH語法,以下以XPATH語法為例作出詳細說明。具體地,當采用XPATH語法描述待抽出信息在節(jié)點樹中的位置信息時,將根據(jù)用戶輸入的待抽取信息的類型和所述待抽取信息在所述節(jié)點樹中的位置生成如下配置信息:

title://h1;

其中title為上述待抽取信息的類型,h1為上述待抽取信息在所述節(jié)點樹中的位置。本實施例中,h1為HTML元素,且為節(jié)點樹上的節(jié)點。

在生成配置信息后,將根據(jù)該配置信息生成相應(yīng)的信息抽取請求,以進行信息抽取操作。

進一步地,基于上述第三實施例,在第四實施例中,上述確定模塊20具體用于,根據(jù)所述待抽取信息的類型和所述待抽取信息在所述節(jié)點樹中的位置,按照樹遍歷算法確定所述目標位置。

本實施例中,可以采用成熟的樹遍歷算法來搜索樹中的任何位置,在進行搜索確認待抽取信息的目標位置時,可以首先根據(jù)上述待抽取信息在所述節(jié)點樹中的位置(即上述實施例中的h1)搜索對應(yīng)的節(jié)點,然后根據(jù)待抽取信息的類型(即上述實施例中的title)確定需要抽取的信息的具體位置,從而得到目標位置。在本實施例中,具體地,上述目標位置為節(jié)點樹上h1節(jié)點對應(yīng)的子節(jié)點樹中h1中為title的內(nèi)容。

進一步地,參照圖4,基于上述任一實施例,在第四實施例中,上述建模模塊10包括:

解析單元101,用于接收到信息抽取請求時,解析HTML文本內(nèi)容;并當解析到HTML元素的開始標簽時,將當前解析到的HTML元素設(shè)定為目標節(jié)點繼續(xù)解析;

判斷單元102,用于將解析獲得的非HTML元素內(nèi)容的字符串以子節(jié)點的 形式添加在所述目標節(jié)點下,并判斷是否再次解析到HTML元素的開始標簽;

第一處理單元103,用于當再次解析到HTML元素的開始標簽時,將當前解析到的HTML元素設(shè)定為所述目標節(jié)點的子節(jié)點;然后將所述子節(jié)點設(shè)定為目標節(jié)點繼續(xù)解析,并由判斷單元繼續(xù)執(zhí)行將解析獲得的非HTML元素內(nèi)容的字符串以子節(jié)點的形式添加在所述目標節(jié)點下,并判斷是否再次解析到HTML元素的開始標簽的操作;

第二處理單元104,用于當未再次解析到HTML元素的開始標簽時,在解析到的所述目標節(jié)點對應(yīng)HTML元素的結(jié)束標簽為非首個HTLM元素對應(yīng)的HTML元素的結(jié)束標簽時,將所述目標節(jié)點的父節(jié)點設(shè)置為目標節(jié)點繼續(xù)解析,并執(zhí)行所述將解析獲得的非HTML元素內(nèi)容的字符串以子節(jié)點的形式添加在所述目標節(jié)點下,并判斷是否再次解析到HTML元素的開始標簽的操作;在解析到的所述目標節(jié)點對應(yīng)HTML元素的結(jié)束標簽為首個HTLM元素對應(yīng)的HTML元素的結(jié)束標簽時,結(jié)束對HTML文本內(nèi)容的解析,根據(jù)各節(jié)點的遞歸關(guān)系形成節(jié)點樹。

應(yīng)當說明的是,在每個網(wǎng)頁的HTML文件中首個HTML元素為html,該html的結(jié)束標簽為</html>。本實施例中,HTML文本解析器將依次讀取HTML文本中的每個字節(jié),每讀取到一個完整的HTML元素的開始標簽時,將創(chuàng)建一個HTML元素節(jié)點,并根據(jù)各HTML元素的結(jié)構(gòu)關(guān)系創(chuàng)建DOM節(jié)點樹。以HTML文本內(nèi)容為圖5所示的內(nèi)容為例,作出詳細說明。

首先解析獲得的HTML元素的開始標簽為<html>,將HTML元素html設(shè)定為目標節(jié)點,然后繼續(xù)對目標節(jié)點下的子節(jié)點進行解析;繼續(xù)解析獲得的HTML元素的開始標簽為<head>,此時將head設(shè)定為html節(jié)點的子節(jié)點,然后以head為目標節(jié)點,繼續(xù)對目標節(jié)點下的子節(jié)點進行解析;繼續(xù)解析獲得的HTML元素的開始標簽為<title>,此時將title設(shè)定為head節(jié)點的子節(jié)點,然后以title為目標節(jié)點,繼續(xù)對目標節(jié)點下的子節(jié)點進行解析;繼續(xù)解析獲得的非HTML元素內(nèi)容的字符串為“大主宰無彈窗全本閱讀”,此時將字符串“大主宰無彈窗全本閱讀”以子節(jié)點的形式添加在目標節(jié)點title下;繼續(xù)解析獲得HTML元素的結(jié)束標簽</title>,此時以子節(jié)點title的父節(jié)點head為目標節(jié)點繼續(xù)解析,從而完成對title的遞歸,繼續(xù)對head的遞歸;依次完成對各HTML元素的遞歸,從而形成如圖6所示的DOM節(jié)點樹。

進一步地,參照圖7,基于上述第五實施例,在第六實施例中,上述信息抽取裝置還包括:

子節(jié)點設(shè)定單元,用于當解析到所述目標節(jié)點對應(yīng)HTML元素的元素屬性和屬性值時,將所述元素屬性和屬性值設(shè)定為所述目標節(jié)點的子節(jié)點。

如圖6所示,以HTML元素中的div為例,其中class為div的元素屬性,area為屬性值;id為div的元素屬性,content為屬性值。可分別將元素屬性和屬性值均以子節(jié)點的形式分別添加在相應(yīng)div節(jié)點下,即將class=area和id=content作為相應(yīng)div的子節(jié)點。本實施例中,由于增加了元素屬性和屬性值作為相應(yīng)HTML元素的子節(jié)點,從而在節(jié)點樹上遍歷時,可以在上述配置信息中添加元素屬性和屬性值,以更加準確的得到HTML元素的準確位置。例如,采用XPATH語法描述待抽出信息在節(jié)點樹中的位置信息時,將根據(jù)用戶輸入的待抽取信息的類型和所述待抽取信息在所述節(jié)點樹中的位置生成如下配置信息:$type://div[@class=”play_seat”]/a[2]。

參照圖8,提出了本發(fā)明網(wǎng)頁信息抽出方法第一實施例,在第一實施例中,該網(wǎng)頁信息抽取方法包括以下步驟:

步驟S10,接收到信息抽取請求時,根據(jù)網(wǎng)頁中HTML元素建立節(jié)點樹;

步驟S20,根據(jù)所述信息抽取請求中預(yù)設(shè)的配置信息在所述節(jié)點樹中確定待抽取信息的目標位置;

步驟S30,抽取所述目標位置對應(yīng)的信息。

本實施例提供的網(wǎng)頁信息抽取方法主要應(yīng)用于對網(wǎng)頁信息的抽取。上述HTML元素為網(wǎng)頁元素,包括元素開始標簽和元素結(jié)束標簽,例如html元素包括元素開始標簽<html>和元素結(jié)束標簽</html>。

在進行網(wǎng)頁信息抽取時,首先由用戶采用特定的語言描述待抽取的信息,然后根據(jù)描述的語言生成相應(yīng)的配置信息,根據(jù)配置信息生成信息抽出請求,當接收到該信息抽出請求時,將根據(jù)HTML元素建立節(jié)點樹(本實施例中該節(jié)點樹為DOM樹,即為HTML的文本對象模型)。然后根據(jù)該信息抽出請求中的配置信息確定待抽取信息的目標位置,最后根據(jù)確定的目標位置進行信息抽取,從而完成在網(wǎng)頁中進行信息抽取的操作。

本發(fā)明實施例通過接收到信息抽取請求時,根據(jù)網(wǎng)頁中HTML元素建立節(jié)點樹;然后根據(jù)所述信息抽取請求中預(yù)設(shè)的配置信息在所述節(jié)點樹中確定待抽取信息的目標位置;最后抽取所述目標位置對應(yīng)的信息;以完成網(wǎng)頁中進行信息抽取的操作。由于在進行信息抽取時,本發(fā)明實施例是基于由HTML文本生成的節(jié)點樹,在節(jié)點樹上進行信息抽取;相對于現(xiàn)有技術(shù)采用文本分詞和語義識別,進行信息抽取的方式,本發(fā)明實施例可以降低信息抽取的操作難度,從而從整體上降低HTML網(wǎng)頁中信息的抽取成本。

進一步地,參照圖9,基于上述實施例,在第二實施例中,上述步驟S10之前還包括:

步驟S40,根據(jù)所述待抽取信息的類型和所述待抽取信息在所述節(jié)點樹中的位置按照預(yù)置規(guī)則生成配置信息;

步驟S50,根據(jù)所述配置信息生成信息抽取請求。

本實施例中,上述預(yù)置規(guī)則可以根據(jù)實際需要進行設(shè)置,例如可以采用正則表達式或XPATH語法,以下以XPATH語法為例作出詳細說明。具體地,當采用XPATH語法描述待抽出信息在節(jié)點樹中的位置信息時,將根據(jù)用戶輸入的待抽取信息的類型和所述待抽取信息在所述節(jié)點樹中的位置生成如下配置信息:

title://h1;

其中title為上述待抽取信息的類型,h1為上述待抽取信息在所述節(jié)點樹中的位置。本實施例中,h1為HTML元素,且為節(jié)點樹上的節(jié)點。

在生成配置信息后,將根據(jù)該配置信息生成相應(yīng)的信息抽取請求,以進行信息抽取操作。

進一步地,參照圖10,基于上述第二實施例,在第三實施例中,上述步驟S20包括:

根據(jù)所述待抽取信息的類型和所述待抽取信息在所述節(jié)點樹中的位置,按照樹遍歷算法確定所述目標位置。

本實施例中,可以采用成熟的樹遍歷算法來搜索樹中的任何位置,在進行搜索確認待抽取信息的目標位置時,可以首先根據(jù)上述待抽取信息在所述 節(jié)點樹中的位置(即上述實施例中的h1)搜索對應(yīng)的節(jié)點,然后根據(jù)待抽取信息的類型(即上述實施例中的title)確定需要抽取的信息的具體位置,從而得到目標位置。在本實施例中,具體地,上述目標位置為節(jié)點樹上h1節(jié)點對應(yīng)的子節(jié)點樹中h1中為title的內(nèi)容。

進一步地,參照圖11,基于上述任一實施例,在第四實施例中,上述步驟S10包括:

步驟S11,接收到信息抽取請求時,解析HTML文本內(nèi)容;

步驟S12,當解析到HTML元素的開始標簽時,將當前解析到的HTML元素設(shè)定為目標節(jié)點繼續(xù)解析;

步驟S13,將解析獲得的非HTML元素內(nèi)容的字符串以子節(jié)點的形式添加在所述目標節(jié)點下,并判斷是否再次解析到HTML元素的開始標簽;若是,則執(zhí)行步驟S14,否則執(zhí)行步驟S15;

步驟S14,將當前解析到的HTML元素設(shè)定為所述目標節(jié)點的子節(jié)點;然后將所述子節(jié)點設(shè)定為目標節(jié)點繼續(xù)解析,并返回步驟S13;

步驟S15,在解析到的所述目標節(jié)點對應(yīng)HTML元素的結(jié)束標簽時,判斷所述HTML元素的結(jié)束標簽是否為首個HTLM元素對應(yīng)的HTML元素的結(jié)束標簽;若是,則執(zhí)行步驟S16,否則執(zhí)行步驟S17;

步驟S16,結(jié)束對HTML文本內(nèi)容的解析,根據(jù)各節(jié)點的遞歸關(guān)系形成節(jié)點樹;

步驟S17,將所述目標節(jié)點的父節(jié)點設(shè)置為目標節(jié)點繼續(xù)解析,并返回執(zhí)行步驟S13。

應(yīng)當說明的是,在每個網(wǎng)頁的HTML文件中首個HTML元素為html,該html的結(jié)束標簽為</html>。本實施例中,HTML文本解析器將依次讀取HTML文本中的每個字節(jié),每讀取到一個完整的HTML元素的開始標簽時,將創(chuàng)建一個HTML元素節(jié)點,并根據(jù)各HTML元素的結(jié)構(gòu)關(guān)系創(chuàng)建DOM節(jié)點樹。以HTML文本內(nèi)容為圖5所示的內(nèi)容為例,作出詳細說明。

首先解析獲得的HTML元素的開始標簽為<html>,將HTML元素html設(shè)定為目標節(jié)點,然后繼續(xù)對目標節(jié)點下的子節(jié)點進行解析;繼續(xù)解析獲得的HTML元素的開始標簽為<head>,此時將head設(shè)定為html節(jié)點的子節(jié)點,然 后以head為目標節(jié)點,繼續(xù)對目標節(jié)點下的子節(jié)點進行解析;繼續(xù)解析獲得的HTML元素的開始標簽為<title>,此時將title設(shè)定為head節(jié)點的子節(jié)點,然后以title為目標節(jié)點,繼續(xù)對目標節(jié)點下的子節(jié)點進行解析;繼續(xù)解析獲得的非HTML元素內(nèi)容的字符串為“大主宰無彈窗全本閱讀”,此時將字符串“大主宰無彈窗全本閱讀”以子節(jié)點的形式添加在目標節(jié)點title下;繼續(xù)解析獲得HTML元素的結(jié)束標簽</title>,此時以子節(jié)點title的父節(jié)點head為目標節(jié)點繼續(xù)解析,從而完成對title的遞歸,繼續(xù)對head的遞歸;依次完成對各HTML元素的遞歸,從而形成如圖6所示的DOM節(jié)點樹。

進一步地,參照圖12,基于上述第五實施例,在第六實施例中,上述步驟S13之前還包括:

步驟S18,當解析到所述目標節(jié)點對應(yīng)HTML元素的元素屬性和屬性值時,將所述元素屬性和屬性值設(shè)定為所述目標節(jié)點的子節(jié)點。

如圖6所示,以HTML元素中的div為例,其中class為div的元素屬性,area為屬性值;id為div的元素屬性,content為屬性值??煞謩e將元素屬性和屬性值均以子節(jié)點的形式分別添加在相應(yīng)div節(jié)點下,即將class=area和id=content作為相應(yīng)div的子節(jié)點。本實施例中,由于增加了元素屬性和屬性值作為相應(yīng)HTML元素的子節(jié)點,從而在節(jié)點樹上遍歷時,可以在上述配置信息中添加元素屬性和屬性值,以更加準確的得到HTML元素的準確位置。例如,采用XPATH語法描述待抽出信息在節(jié)點樹中的位置信息時,將根據(jù)用戶輸入的待抽取信息的類型和所述待抽取信息在所述節(jié)點樹中的位置生成如下配置信息:$type://div[@class=”play_seat”]/a[2]。

以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制其專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1