一種網頁內容提取方法和設備的制作方法
【專利摘要】本發明實施例公開了一種網頁內容提取方法,包括:獲取待提取網頁對應的文檔對象模型D0M文檔;獲取所述D0M文檔對應的解析模板;所述解析模板中包括需要提取的D0M文檔元素、所述D0M文檔元素的類型、所述D0M文檔元素在所述D0M文檔中的位置以及輸出結果格式;針對所述解析模板中包括的任一需要提取的D0M文檔元素,根據所述解析模板中包括的該D0M文檔元素類型,確定該D0M文檔元素的解析器;根據所述解析器從該D0M文檔元素在所述D0M文檔中的位置中提取該D0M文檔元素;以解析模板中定義的輸出結果格式輸出提取結果。本發明實施例還公開了一種網頁內容提取設備。采用本發明,可以提高網頁內容提取效率。
【專利說明】一種網頁內容提取方法和設備
【技術領域】
[0001] 本發明涉及互聯網【技術領域】,尤其涉及一種網頁內容提取方法和設備。
【背景技術】
[0002] 開發業務中,很多情況下都需要從其他網站爬取資訊進行整合、分析。互聯網每個 網站都有自己的web頁面,網頁結構布局差異很大,解析web頁面并提取內容是一個繁瑣而 耗時的工作。
[0003] 現有技術中沒有一種比較合理的網頁內容提取方案。
【發明內容】
[0004] 本發明實施例所要解決的技術問題在于,提供一種網頁內容提取方法和設備,以 提高頁面內容提取效率。
[0005] 為了解決上述技術問題,本發明實施例提供了一種網頁內容提取方法,包括:
[0006] 獲取待提取網頁對應的文檔對象模型D0M文檔;
[0007] 獲取所述D0M文檔對應的解析模板;所述解析模板中包括需要提取的D0M文檔元 素、所述D0M文檔元素的類型、所述D0M文檔元素在所述D0M文檔中的位置以及輸出結果格 式;
[0008] 針對所述解析模板中包括的任一需要提取的D0M文檔元素,根據所述解析模板中 包括的該D0M文檔元素類型,確定該D0M文檔元素的解析器;
[0009] 根據所述解析器從該D0M文檔元素在所述D0M文檔中的位置中提取該D0M文檔元 素;
[0010] 以解析模板中定義的輸出結果格式輸出提取結果。
[0011] 其中,所述解析模板中還包括字符串正則表達式;
[0012] 所述根據所述解析器從該D0M文檔元素在所述D0M文檔中的位置中提取該D0M文 檔元素之后,以解析模板中定義的輸出結果格式輸出提取結果之前,還包括:
[0013] 根據所述字符串正則表達式對提取到的D0M文檔元素進行篩選,以得到篩選后的 提取結果;
[0014] 所述以解析模板中定義的輸出結果格式輸出提取結果,包括:
[0015] 將所述篩選后的提取結果以解析模塊中定義的輸出結果格式輸出。
[0016] 其中,所述解析模板中還包括解析結果默認值;
[0017] 所述以解析模板中定義的輸出結果格式輸出提取結果,包括:
[0018] 當根據所述解析器從D0M文檔元素在所述D0M文檔中的位置中提取D0M文檔元素 的結果為空時,以解析模板中定義的輸出結果格式輸出所述解析結果默認值。
[0019] 其中,所述解析模板為j son格式的模板文件。
[0020] 其中,所述D0M文檔元素的類型包括以下之一:
[0021] 字符串、整形、日期、列表。
[0022] 相應地,本發明實施例還提供了一種網頁內容提取設備,包括:
[0023] 第一獲取模塊,用于獲取待提取網頁對應的文檔對象模型D0M文檔;
[0024] 第二獲取模塊,用于獲取所述D0M文檔對應的解析模板;所述解析模板中包括需 要提取的D0M文檔元素、所述D0M文檔元素的類型、所述D0M文檔元素在所述D0M文檔中的 位置以及輸出結果格式;
[0025] 確定模塊,用于針對所述解析模板中包括的任一需要提取的D0M文檔元素,根據 所述解析模板中包括的該D0M文檔元素類型,確定該D0M文檔元素的解析器;
[0026] 提取模塊,用于根據所述解析器從該D0M文檔元素在所述D0M文檔中的位置中提 取該D0M文檔元素;
[0027] 輸出模塊,用于以解析模板中定義的輸出結果格式輸出提取結果。
[0028] 其中,所述解析模板中還包括字符串正則表達式;
[0029] 所述設備還包括:
[0030] 篩選模塊,用于在所述提取模塊根據所述解析器從該D0M文檔元素在所述D0M文 檔中的位置中提取該D0M文檔元素之后,根據所述字符串正則表達式對提取到的D0M文檔 元素進行篩選,以得到篩選后的提取結果;
[0031] 所述輸出模塊具體用于,將所述篩選后的提取結果以解析模塊中定義的輸出結果 格式輸出。
[0032] 其中,所述解析模板中還包括解析結果默認值;
[0033] 所述輸出模塊還用于,當所述提取模塊根據所述解析器從D0M文檔元素在所述 D0M文檔中的位置中提取D0M文檔元素的結果為空時以解析模板中定義的輸出結果格式輸 出所述解析結果默認值。
[0034] 其中,所述解析模板為j son格式的模板文件。
[0035] 其中,所述D0M文檔元素的類型包括以下之一:
[0036] 字符串、整形、日期、列表。
[0037] 實施本發明實施例,具有如下有益效果:
[0038] 通過獲取待提取網頁對應的文檔對象模型D0M文檔,并獲取該D0M文檔對應的解 析模板,進而針對解析模板中包括的任一需要提取的D0M文檔元素,根據解析模板中包括 的該D0M文檔元素類型,確定該D0M文檔元素的解析器,并根據該解析器從該D0M文檔元素 在D0M文檔中的位置中提取該D0M文檔元素,進而以解析模板中定義的輸出結果格式輸出 提取結果,提高了網頁內容提取的效率。
【專利附圖】
【附圖說明】
[0039] 為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以 根據這些附圖獲得其他的附圖。
[0040] 圖1為本發明實施例提供的一種網頁內容提取方法的流程示意圖;
[0041] 圖1A為本發明實施例的一種json格式的模板文件的示意圖;
[0042] 圖2為本發明實施例提供的另一種網頁內容提取方法的流程示意圖;
[0043] 圖3為本發明實施例提供的另一種網頁內容提取方法的流程示意圖;
[0044] 圖4為本發明實施例提供的一種網頁內容提取設備的結構示意圖;
[0045] 圖5為本發明實施例提供的另一種網頁內容提取設備的結構示意圖;
[0046] 圖6為本發明實施例提供的另一種網頁內容提取設備的結構示意圖。
【具體實施方式】
[0047] 下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于 本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他 實施例,都屬于本發明保護的范圍。
[0048] 如圖1所示,為本發明實施例提供的一種網頁內容提取方法的流程示意圖,可以 包括以下步驟:
[0049] 步驟101、獲取待提取網頁對應的D0M文檔。
[0050] 本發明實施例中,當需要進行網頁內容提取時,可以先獲取該待提取網頁對應的 DOM (Document Object Model,文檔對象模型)文檔。
[0051] 步驟102、獲取該D0M文檔對應的解析模板。
[0052] 本發明實施例中,獲取到待提取網頁對應的D0M文檔之后,可以進一步獲取該D0M 文檔對應的解析模板。
[0053] 本發明實施例中,D0M文檔對應的解析模板中可以包括但不限于:
[0054] 需要提取的D0M文檔元素、D0M文檔元素的類型、該D0M文檔元素在該D0M文檔中 的位置以及輸出結果格式。
[0055] 例如,需要提取的D0M文檔元素可以為title (標題)、author (作者)、 keywords (關鍵詞)等,其可以由實際提取需求確定,即需要提取網頁的何種內容,就可以 在解析模板中定義相應的D0M文檔元素;D0M文檔元素的類型可以包括字符串(string)、 整形(int)、日期(date)、列表(list)等;輸出結果格式可以為html (Hypertext Markup Language,超文本標記語言)、文本、html標簽的屬性值等。
[0056] 作為一種可選的實施方式,該D0M文檔對應的解析模板可以為json (基于 JavaScript語言的輕量級的數據交換格式)格式的模板文件,其定義方法可以通過以下步 驟實現:
[0057] 步驟11)、定義一個json格式文檔,以"key (鍵)/value (值)"的形式定義要解析 的D0M文檔字段;
[0058] 步驟12)、定義要解析的D0M文檔字段,以名稱作為key,如title、author、 keywords等,查詢對象作為value ;其中,查詢對象主要有如下屬性:
[0059] 查詢類型(即需要提取的D0M文檔字段的類型,如字符串、整形、日期、列表等)、 css查詢表達式(即需要提取的D0M文檔字段在D0M文檔中的位置)、輸出結果格式(如 html、文本、html標簽的屬性值等),其示意圖可以參考圖1A。
[0060] 步驟103、針對該解析模板中包括的任一需要提取的D0M文檔元素,根據該解析模 板中包括的該D0M文檔元素類型,確定該D0M文檔元素的解析器。
[0061] 本發明實施例中,獲取到D0M文檔對應的解析模板后,可以遍歷該解析模板,確定 需要提取的DOM文檔元素,針對該解析模板中包括的任一需要提取的DOM文檔元素,根據該 解析模板中包括的該D0M文檔元素類型,確定該D0M文檔元素的解析器。
[0062] 例如,若需要提取的D0M文檔元素的類型為字符串類型,則對應的解析器為字符 串類型的解析器;若需要提取的D0M文檔元素的類型為整形類型,則對應的解析器為整形 類型的解析器;若需要提取的D0M文檔元素的類型為日期類型,則對應的解析器為日期類 型的解析器;若需要提取的D0M文檔元素的類型為列表類型,則對應的解析器為列表類型 的解析器。
[0063] 以解析模板為上述json格式的模板文件(json文檔,下同)為例,獲取到D0M文 檔對應的json文檔后,可以遍歷該json文檔的key,將value解析通過反射的方式對應到 相應的查詢對象,得到查詢對象的查詢類型,進而得到查詢類型對應的解析器,如字符串類 型解析器、整形類型解析器、日期類型解析器、列表類型解析器等。其中,當解析器為列表類 型解析器時,需要對D0M文檔中多個重復字段循環遍歷,得到json數組的數據結構。
[0064] 步驟104、根據解析器從該D0M文檔元素在D0M文檔中的位置中提取該D0M文檔元 素。
[0065] 本發明實施例中,當確定了需要提取的D0M文檔元素的解析器時,可以根據該解 析器從D0M文檔元素在D0M文檔中的位置中提取該D0M文檔元素。
[0066] 以圖1A所示的json文檔為例,根據該json文檔可知,需要提取的D0M文檔元素 為"title",該D0M文檔元素的類型為"string",即字符串,該D0M文檔元素在D0M文檔中 的位置為 "div. article hi"。
[0067] 基于該json文檔,首先可以根據該需要提取的D0M文檔元素的類型,確定該DOM 文檔元素的解析器,即字符串類型的解析器;然后利用該字符串類型的解析器,從D0M文檔 中"div. article hi"位置解析出需要提取的D0M文檔元素。
[0068] 步驟105、以解析模板中定義的輸出結果格式輸出提取結果。
[0069] 本發明實施例中,根據解析器從該D0M文檔元素在D0M文檔中的位置中提取到D0M 文檔元素后,可以將該D0M文檔元素按照解析模板中定義的輸出結果格式輸出。
[0070] 仍以圖1A所示的json文檔為例,根據該json文檔可知,預先定義的輸出結果格 式為text (文本)。
[0071] 基于該json文檔,從D0M文檔指定位置解析得到D0M文檔元素后,可以將解析得 到的D0M文檔元素按照文本格式輸出。
[0072] 如圖2所示,為本發明實施例提供的另一種網頁內容提取方法的流程示意圖,可 以包括以下步驟:
[0073] 步驟201、獲取待提取網頁對應的D0M文檔。
[0074] 本發明實施例中,當需要進行網頁內容提取時,可以先獲取該待提取網頁對應的 D0M文檔。
[0075] 步驟202、獲取該D0M文檔對應的解析模板。
[0076] 本發明實施例中,獲取到待提取網頁對應的D0M文檔之后,可以進一步獲取該D0M 文檔對應的解析模板。
[0077] 本發明實施例中,D0M文檔對應的解析模板中可以除了可以包括需要提取的D0M 文檔元素、D0M文檔元素的類型、該D0M文檔元素在該D0M文檔中的位置以及輸出結果格式 之外,還可以包括字符串正則表達式,該字符串正則表達式用于在從需要提取的DOM文檔 元素在D0M文檔中的位置處提取到該D0M文檔元素時,對提取到的D0M文檔元素進行過濾。
[0078] 作為一種可選的實施方式,該D0M文檔對應的解析模板可以為json (基于 JavaScript語言的輕量級的數據交換格式)格式的模板文件,其定義方法可以通過以下步 驟實現:
[0079] 步驟21)、定義一個json格式文檔,以"key (鍵)/value (值)"的形式定義要解析 的D0M文檔字段;
[0080] 步驟22)、定義要解析的D0M文檔字段,以名稱作為key,如title、author、 keywords等,查詢對象作為value ;其中,查詢對象主要有如下屬性:
[0081] 查詢類型(即需要提取的D0M文檔字段的類型,如字符串、整形、日期、列表等)、 css查詢表達式(即需要提取的D0M文檔字段在D0M文檔中的位置)、輸出結果格式(如 html、文本、html標簽的屬性值等),以及字符串正則表達式。
[0082] 舉例來說,假設需要提取的D0M文檔元素為發布日期(publish time)中的年份, 由于通過css查詢表達式只能在D0M文檔中定位發布日期這整個字段,而無法直接定位發 布日期中的年份,因此,為了提取發布日期中的年份,可以先通過css查詢表達式定位到 D0M文檔中的發布日期,并將該發布日期提取出來,然后通過字符串正則表達式對該發布日 期進行過濾,以得到發布日期中的年份。
[0083] 步驟203、針對該解析模板中包括的任一需要提取的D0M文檔元素,根據該解析模 板中包括的該D0M文檔元素類型,確定該D0M文檔元素的解析器。
[0084] 本發明實施例中,獲取到D0M文檔對應的解析模板后,可以遍歷該解析模板,確定 需要提取的D0M文檔元素,針對該解析模板中包括的任一需要提取的D0M文檔元素,根據該 解析模板中包括的該D0M文檔元素類型,確定該D0M文檔元素的解析器。
[0085] 例如,若需要提取的D0M文檔元素的類型為字符串類型,則對應的解析器為字符 串類型的解析器;若需要提取的D0M文檔元素的類型為整形類型,則對應的解析器為整形 類型的解析器;若需要提取的D0M文檔元素的類型為日期類型,則對應的解析器為日期類 型的解析器;若需要提取的D0M文檔元素的類型為列表類型,則對應的解析器為列表類型 的解析器。
[0086] 以解析模板為上述json格式的模板文件(json文檔,下同)為例,獲取到D0M文 檔對應的json文檔后,可以遍歷該json文檔的key,將value解析通過反射的方式對應到 相應的查詢對象,得到查詢對象的查詢類型,進而得到查詢類型對應的解析器,如字符串類 型解析器、整形類型解析器、日期類型解析器、列表類型解析器等。其中,當解析器為列表類 型解析器時,需要對D0M文檔中多個重復字段循環遍歷,得到json數組的數據結構。
[0087] 步驟204、根據解析器從該D0M文檔元素在D0M文檔中的位置中提取該D0M文檔元 素。
[0088] 本發明實施例中,當確定了需要提取的D0M文檔元素的解析器時,可以根據該解 析器從D0M文檔元素在D0M文檔中的位置中提取該D0M文檔元素。
[0089] 以圖1A所示的json文檔為例,根據該json文檔可知,需要提取的D0M文檔元素 為"title",該D0M文檔元素的類型為"string",即字符串,該D0M文檔元素在D0M文檔中 的位置為 "div. article hi"。
[0090] 基于該json文檔,首先可以根據該需要提取的DOM文檔元素的類型,確定該DOM 文檔元素的解析器,即字符串類型的解析器;然后利用該字符串類型的解析器,從DOM文檔 中"div. article hi"位置解析出需要提取的D0M文檔元素。
[0091] 步驟205、根據解析模板中定義的字符串正則表達式對提取到的D0M文檔元素進 行篩選,以得到篩選后的提取結果。
[0092] 本發明實施例中,當根據D0M文檔元素在D0M文檔中的位置提到到需要提取的D0M 文檔元素之后,在將提取結果輸出之前,還可以根據解析模板中定義的字符串正則表達式 對提取到的D0M文檔進行篩選。
[0093] 例如,假設從D0M文檔中提取的D0M文檔元素為日期格式的元素,如2014-7-22,而 實際需要提取的是具體年份,則可以通過預先定義的字符串正則表達式對該日期格式的數 據進行篩選,以得到需要提取的數據,即年份(2014)。
[0094] 步驟206、以解析模板中定義的輸出結果格式輸出提取結果。
[0095] 本發明實施例中,根據解析器從該D0M文檔元素在D0M文檔中的位置中提取到D0M 文檔元素后,可以將該D0M文檔元素按照解析模板中定義的輸出結果格式輸出。
[0096] 仍以圖1A所示的json文檔為例,根據該json文檔可知,預先定義的輸出結果格 式為text (文本)。
[0097] 基于該json文檔,從D0M文檔指定位置解析得到D0M文檔元素后,可以將解析得 到的D0M文檔元素按照文本格式輸出。
[0098] 如圖3所示,為本發明實施例提供的另一種網頁內容提取方法的流程示意圖,可 以包括以下步驟:
[0099] 步驟301、獲取待提取網頁對應的D0M文檔。
[0100] 本發明實施例中,當需要進行網頁內容提取時,可以先獲取該待提取網頁對應的 D0M文檔。
[0101] 步驟302、獲取該D0M文檔對應的解析模板。
[0102] 本發明實施例中,獲取到待提取網頁對應的D0M文檔之后,可以進一步獲取該D0M 文檔對應的解析模板。
[0103] 本發明實施例中,D0M文檔對應的解析模板中,除了可以包括需要提取的D0M文檔 元素、D0M文檔元素的類型、該D0M文檔元素在該D0M文檔中的位置以及輸出結果格式之外, 還可以包括解析結果默認值,該解析結果默認值用于在根據解析模板從D0M文檔中提取到 的D0M文檔元素為空時,作為提取結果輸出。
[0104] 作為一種可選的實施方式,該D0M文檔對應的解析模板可以為json (基于 JavaScript語言的輕量級的數據交換格式)格式的模板文件,其定義方法可以通過以下步 驟實現:
[0105] 步驟31)、定義一個json格式文檔,以"key (鍵)/value (值)"的形式定義要解析 的D0M文檔字段;
[0106] 步驟32)、定義要解析的D0M文檔字段,以名稱作為key,如title、author、 keywords等,查詢對象作為value ;其中,查詢對象主要有如下屬性:
[0107] 查詢類型(即需要提取的D0M文檔字段的類型,如字符串、整形、日期、列表等)、 css查詢表達式(即需要提取的D0M文檔字段在D0M文檔中的位置)、輸出結果格式(如 html、文本、html標簽的屬性值等),以及解析結果默認值。
[0108] 步驟303、針對該解析模板中包括的任一需要提取的D0M文檔元素,根據該解析模 板中包括的該D0M文檔元素類型,確定該D0M文檔元素的解析器。
[0109] 本發明實施例中,獲取到D0M文檔對應的解析模板后,可以遍歷該解析模板,確定 需要提取的D0M文檔元素,針對該解析模板中包括的任一需要提取的D0M文檔元素,根據該 解析模板中包括的該D0M文檔元素類型,確定該D0M文檔元素的解析器。
[0110] 例如,若需要提取的D0M文檔元素的類型為字符串類型,則對應的解析器為字符 串類型的解析器;若需要提取的D0M文檔元素的類型為整形類型,則對應的解析器為整形 類型的解析器;若需要提取的D0M文檔元素的類型為日期類型,則對應的解析器為日期類 型的解析器;若需要提取的D0M文檔元素的類型為列表類型,則對應的解析器為列表類型 的解析器。
[0111] 以解析模板為上述json格式的模板文件(json文檔,下同)為例,獲取到D0M文 檔對應的json文檔后,可以遍歷該json文檔的key,將value解析通過反射的方式對應到 相應的查詢對象,得到查詢對象的查詢類型,進而得到查詢類型對應的解析器,如字符串類 型解析器、整形類型解析器、日期類型解析器、列表類型解析器等。其中,當解析器為列表類 型解析器時,需要對D0M文檔中多個重復字段循環遍歷,得到json數組的數據結構。
[0112] 步驟304、根據解析器從該D0M文檔元素在D0M文檔中的位置中提取該D0M文檔元 素。
[0113] 本發明實施例中,當確定了需要提取的D0M文檔元素的解析器時,可以根據該解 析器從D0M文檔元素在D0M文檔中的位置中提取該D0M文檔元素。
[0114] 以圖1A所示的json文檔為例,根據該json文檔可知,需要提取的D0M文檔元素 為"title",該D0M文檔元素的類型為"string",即字符串,該D0M文檔元素在D0M文檔中 的位置為 "div. article hi"。
[0115] 基于該json文檔,首先可以根據該需要提取的D0M文檔元素的類型,確定該DOM 文檔元素的解析器,即字符串類型的解析器;然后利用該字符串類型的解析器,從D0M文檔 中"div. article hi"位置解析出需要提取的D0M文檔元素。
[0116] 步驟305、當根據解析器從D0M文檔元素在D0M文檔中的位置中提取D0M文檔元素 的結果為空時,以解析模板中定義的輸出結果格式輸出所述解析結果默認值。
[0117] 本發明實施例中,當根據確定的解析器從D0M文檔中提取D0M文檔元素的結果為 空時,如,解析模板中定義的D0M文檔元素在D0M文檔中的位置發生錯誤,可以按照解析模 板中定義的輸出結果格式輸出解析模板中定義的解析結果默認值。
[0118] 通過以上描述可以看出,在本發明實施例提供的技術方案中,通過獲取待提取網 頁對應的文檔對象模型D0M文檔,并獲取該D0M文檔對應的解析模板,進而針對解析模板中 包括的任一需要提取的D0M文檔元素,根據解析模板中包括的該D0M文檔元素類型,確定該 D0M文檔元素的解析器,并根據該解析器從該D0M文檔元素在D0M文檔中的位置中提取該 D0M文檔元素,進而以解析模板中定義的輸出結果格式輸出提取結果,提高了網頁內容提取 的效率,此外,通過定義解析模板的方式,將解析的元素進行了抽象和封裝,提高了解析內 容的可擴展性、易維護性。
[0119] 基于上述方法實施例相同的技術構思,本發明實施例還提供了一種網頁內容提取 設備,可以應用于上述方法實施例中。
[0120] 如圖4所示,為本發明實施例提供的一種網頁內容提取設備的結構示意圖,可以 包括:
[0121] 第一獲取模塊401,用于獲取待提取網頁對應的文檔對象模型D0M文檔;
[0122] 第二獲取模塊402,用于獲取所述D0M文檔對應的解析模板;所述解析模板中包括 需要提取的D0M文檔元素、所述D0M文檔元素的類型、所述D0M文檔元素在所述D0M文檔中 的位置以及輸出結果格式;
[0123] 確定模塊403,用于針對所述解析模板中包括的任一需要提取的D0M文檔元素,根 據所述解析模板中包括的該D0M文檔元素類型,確定該D0M文檔元素的解析器;
[0124] 提取模塊404,用于根據所述解析器從該D0M文檔元素在所述D0M文檔中的位置中 提取該D0M文檔元素;
[0125] 輸出模塊405,用于以解析模板中定義的輸出結果格式輸出提取結果。
[0126] 在可選實施例中,所述解析模板中還可以包括字符串正則表達式;
[0127] 相應地,請一并參閱圖5,圖5是本發明實施例公開的另一種網頁內容提取設備的 結構示意圖。其中,圖5所示的網頁內容提取設備是由圖4所示的網頁內容提取設備進行 優化得到的,與圖4所示的網頁內容提取設備相比,圖5所示的網頁內容提取設備還可以包 括:
[0128] 篩選模塊406,用于在所述提取模塊404根據所述解析器從該D0M文檔元素在所述 D0M文檔中的位置中提取該D0M文檔元素之后,根據所述字符串正則表達式對提取到的D0M 文檔元素進行篩選,以得到篩選后的提取結果;
[0129] 所述輸出模塊405可以具體用于,將所述篩選后的提取結果以解析模塊中定義的 輸出結果格式輸出。
[0130] 在可選實施例中,所述解析模板中還可以包括解析結果默認值;
[0131] 相應地,所述輸出模塊405還可以用于,當所述提取模塊404根據所述解析器從 D0M文檔元素在所述D0M文檔中的位置中提取D0M文檔元素的結果為空時以解析模板中定 義的輸出結果格式輸出所述解析結果默認值。
[0132] 在可選實施例中,所述解析模板為j son格式的模板文件。
[0133] 在可選實施例中,所述D0M文檔元素的類型可以包括以下之一:
[0134] 字符串、整形、日期、列表。
[0135] 圖6是本發明實施例中提供的另一種網頁內容提取設備的結構示意圖。如圖6所 示,該網頁內容提取設備包括:至少一個處理器601,例如CPU,至少一個用戶接口 603,存儲 器604,至少一個通信總線602。其中,通信總線602用于實現這些組件之間的連接通信。其 中,用戶接口 603可以包括顯示屏(Display)、鍵盤(Keyboard),可選用戶接口 603還可以 包括標準的有線接口、無線接口。存儲器604可以是高速RAM存儲器,也可以是非不穩定的 存儲器(non-volatile memory),例如至少一個磁盤存儲器。存儲器604可選的還可以是至 少一個位于遠離前述處理器601的存儲裝置。其中存儲器604中存儲一組程序代碼,且處 理器601調用存儲器604中存儲的程序代碼,用于執行以下操作 :
[0136] 獲取待提取網頁對應的文檔對象模型D0M文檔;
[0137] 獲取所述D0M文檔對應的解析模板;所述解析模板中包括需要提取的D0M文檔元 素、所述DOM文檔元素的類型、所述DOM文檔元素在所述DOM文檔中的位置以及輸出結果格 式;
[0138] 針對所述解析模板中包括的任一需要提取的D0M文檔元素,根據所述解析模板中 包括的該D0M文檔元素類型,確定該D0M文檔元素的解析器;
[0139] 根據所述解析器從該D0M文檔元素在所述D0M文檔中的位置中提取該D0M文檔元 素;
[0140] 以解析模板中定義的輸出結果格式輸出提取結果。
[0141] 在可選實施例中,所述解析模板中還可以包括字符串正則表達式;
[0142] 相應地,所述處理器601調用存儲器604中存儲的程序代碼根據所述解析器從該 D0M文檔元素在所述D0M文檔中的位置中提取該D0M文檔元素之后,以解析模板中定義的輸 出結果格式輸出提取結果之前,還可以執行以下操作:
[0143] 根據所述字符串正則表達式對提取到的D0M文檔元素進行篩選,以得到篩選后的 提取結果;
[0144] 相應地,所述處理器601調用存儲器604中存儲的程序代碼以解析模板中定義的 輸出結果格式輸出提取結果,可以具體包括:
[0145] 將所述篩選后的提取結果以解析模塊中定義的輸出結果格式輸出。
[0146] 在可選實施例中,所述解析模板中還可以包括解析結果默認值;
[0147] 相應地,所述處理器601調用存儲器604中存儲的程序代碼以解析模板中定義的 輸出結果格式輸出提取結果,可以具體包括:
[0148] 當根據所述解析器從D0M文檔元素在所述D0M文檔中的位置中提取D0M文檔元素 的結果為空時,以解析模板中定義的輸出結果格式輸出所述解析結果默認值。
[0149] 在可選實施例中,所述解析模板為j son格式的模板文件。
[0150] 在可選實施例中,所述D0M文檔元素的類型可以包括以下之一:
[0151] 字符串、整形、日期、列表。
[0152] 在本說明書的描述中,參考術語"一個實施例"、"一些實施例"、"示例"、"具體示 例"、或"一些示例"等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特 點包含于本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不 必須針對的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任 一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技 術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進行結 合和組合。
[0153] 此外,術語"第一"、"第二"僅用于描述目的,而不能理解為指示或暗示相對重要性 或者隱含指明所指示的技術特征的數量。由此,限定有"第一"、"第二"的特征可以明示或 者隱含地包括至少一個該特征。在本發明的描述中,"多個"的含義是至少兩個,例如兩個, 三個等,除非另有明確具體的限定。
[0154] 流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括 一個或更多個用于實現特定邏輯功能或過程的步驟的可執行指令的代碼的模塊、片段或部 分,并且本發明的優選實施方式的范圍包括另外的實現,其中可以不按所示出或討論的順 序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執行功能,這應被本發明 的實施例所屬【技術領域】的技術人員所理解。
[0155] 在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認為是 用于實現邏輯功能的可執行指令的定序列表,可以具體實現在任何計算機可讀介質中,以 供指令執行系統、裝置或設備(如基于計算機的系統、包括處理器的系統或其他可以從指 令執行系統、裝置或設備取指令并執行指令的系統)使用,或結合這些指令執行系統、裝置 或設備而使用。就本說明書而言,"計算機可讀介質"可以是任何可以包含、存儲、通信、傳 播或傳輸程序以供指令執行系統、裝置或設備或結合這些指令執行系統、裝置或設備而使 用的裝置。計算機可讀介質的更具體的示例(非窮盡性列表)包括以下:具有一個或多個 布線的電連接部(電子裝置),便攜式計算機盤盒(磁裝置),隨機存取存儲器(RAM),只讀 存儲器(R0M),可擦除可編輯只讀存儲器(EPROM或閃速存儲器),光纖裝置,以及便攜式光 盤只讀存儲器(⑶ROM)。另外,計算機可讀介質甚至可以是可在其上打印所述程序的紙或其 他合適的介質,因為可以例如通過對紙或其他介質進行光學掃描,接著進行編輯、解譯或必 要時以其他合適方式進行處理來以電子方式獲得所述程序,然后將其存儲在計算機存儲器 中。
[0156] 應當理解,本發明的各部分可以用硬件、軟件、固件或它們的組合來實現。在上述 實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執行系統執行的軟件 或固件來實現。例如,如果用硬件來實現,和在另一實施方式中一樣,可用本領域公知的下 列技術中的任一項或他們的組合來實現:具有用于對數據信號實現邏輯功能的邏輯門電路 的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現場 可編程門陣列(FPGA)等。
[0157] 本【技術領域】的普通技術人員可以理解實現上述實施例方法攜帶的全部或部分步 驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介 質中,該程序在執行時,包括方法實施例的步驟之一或其組合。
[0158] 此外,在本發明各個實施例中的各功能單元可以集成在一個處理模塊中,也可以 是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模 塊既可以采用硬件的形式實現,也可以采用軟件功能模塊的形式實現。所述集成的模塊如 果以軟件功能模塊的形式實現并作為獨立的產品銷售或使用時,也可以存儲在一個計算機 可讀取存儲介質中。
[0159] 上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。盡管上面已經示出和描 述了本發明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發明的限 制,本領域的普通技術人員在本發明的范圍內可以對上述實施例進行變化、修改、替換和變 型。
【權利要求】
1. 一種網頁內容提取方法,其特征在于,包括: 獲取待提取網頁對應的文檔對象模型DOM文檔; 獲取所述DOM文檔對應的解析模板;所述解析模板中包括需要提取的DOM文檔元素、所 述DOM文檔元素的類型、所述DOM文檔元素在所述DOM文檔中的位置以及輸出結果格式; 針對所述解析模板中包括的任一需要提取的DOM文檔元素,根據所述解析模板中包括 的該DOM文檔元素類型,確定該DOM文檔元素的解析器; 根據所述解析器從該DOM文檔元素在所述DOM文檔中的位置中提取該DOM文檔元素; 以解析模板中定義的輸出結果格式輸出提取結果。
2. 如權利要求1所述的方法,其特征在于,所述解析模板中還包括字符串正則表達式; 所述根據所述解析器從該DOM文檔元素在所述DOM文檔中的位置中提取該DOM文檔元 素之后,以解析模板中定義的輸出結果格式輸出提取結果之前,還包括: 根據所述字符串正則表達式對提取到的DOM文檔元素進行篩選,以得到篩選后的提取 結果; 所述以解析模板中定義的輸出結果格式輸出提取結果,包括: 將所述篩選后的提取結果以解析模塊中定義的輸出結果格式輸出。
3. 如權利要求1所述的方法,其特征在于,所述解析模板中還包括解析結果默認值; 所述以解析模板中定義的輸出結果格式輸出提取結果,包括: 當根據所述解析器從DOM文檔元素在所述DOM文檔中的位置中提取DOM文檔元素的結 果為空時,以解析模板中定義的輸出結果格式輸出所述解析結果默認值。
4. 如權利要求1-3任一項所述的方法,其特征在于,所述解析模板為json格式的模板 文件。
5. 如權利要求1-3任一項所述的方法,其特征在于,所述D0M文檔元素的類型包括之 字符串、整形、日期、列表。
6. -種網頁內容提取設備,其特征在于,包括: 第一獲取模塊,用于獲取待提取網頁對應的文檔對象模型D0M文檔; 第二獲取模塊,用于獲取所述D0M文檔對應的解析模板;所述解析模板中包括需要提 取的D0M文檔元素、所述D0M文檔元素的類型、所述D0M文檔元素在所述D0M文檔中的位置 以及輸出結果格式; 確定模塊,用于針對所述解析模板中包括的任一需要提取的D0M文檔元素,根據所述 解析模板中包括的該D0M文檔元素類型,確定該D0M文檔元素的解析器; 提取模塊,用于根據所述解析器從該D0M文檔元素在所述D0M文檔中的位置中提取該 D0M文檔元素; 輸出模塊,用于以解析模板中定義的輸出結果格式輸出提取結果。
7. 如權利要求6所述的設備,其特征在于,所述解析模板中還包括字符串正則表達式; 所述設備還包括: 篩選模塊,用于在所述提取模塊根據所述解析器從該D0M文檔元素在所述D0M文檔中 的位置中提取該D0M文檔元素之后,根據所述字符串正則表達式對提取到的D0M文檔元素 進行篩選,以得到篩選后的提取結果; 所述輸出模塊具體用于,將所述篩選后的提取結果以解析模塊中定義的輸出結果格式 輸出。
8. 如權利要求6所述的設備,其特征在于,所述解析模板中還包括解析結果默認值; 所述輸出模塊還用于,當所述提取模塊根據所述解析器從DOM文檔元素在所述DOM文 檔中的位置中提取DOM文檔元素的結果為空時以解析模板中定義的輸出結果格式輸出所 述解析結果默認值。
9. 如權利要求6-8任一項所述的設備,其特征在于,所述解析模板為json格式的模板 文件。
10. 如權利要求6-8任一項所述的設備,其特征在于,所述D0M文檔元素的類型包括以 下之一: 字符串、整形、日期、列表。
【文檔編號】G06F17/30GK104217036SQ201410524135
【公開日】2014年12月17日 申請日期:2014年10月8日 優先權日:2014年10月8日
【發明者】張鋒 申請人:廣州華多網絡科技有限公司