本發(fā)明涉及云計算領域,尤其是一種網(wǎng)頁發(fā)布時間抽取方法和用于網(wǎng)頁發(fā)布時間抽取的裝置。
背景技術:
在互聯(lián)網(wǎng)時代,網(wǎng)頁是承載消息內容發(fā)布的重要載體。除了直接從網(wǎng)頁中獲取閱讀資訊,對資訊進行深層次的分析也是人們關注的一個重點。
對網(wǎng)頁中的資訊進行分析的前提是解析出網(wǎng)頁的內容。在網(wǎng)頁抽取問題中,特別對消息資訊類網(wǎng)頁進行抽取時,網(wǎng)頁發(fā)布時間是一個重要屬性。目前主要依據(jù)正則表達式規(guī)則進行網(wǎng)頁發(fā)布時間的抽取。但是一個網(wǎng)頁往往包含多個時間,僅通過簡單正則表達式匹配出來時間并不能確定具體的網(wǎng)頁發(fā)布時間。此外,搜索引擎在抓取網(wǎng)頁時,往往是將網(wǎng)頁源碼的HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議)頭文件中的時間作為網(wǎng)頁的發(fā)布時間,然而HTTP頭文件中的時間為網(wǎng)頁最后的修改時間,網(wǎng)頁可能在發(fā)布后進行了修改,無法代表網(wǎng)頁的發(fā)布時間。
技術實現(xiàn)要素:
本發(fā)明實施例所要解決的一個技術問題是:如何準確地抽取網(wǎng)頁的發(fā)布時間。
根據(jù)本發(fā)明實施例的第一個方面,提供了一種網(wǎng)頁發(fā)布時間抽取方法,其特征在于,包括:建立網(wǎng)頁源碼的文檔對象模型DOM樹;在DOM樹中確定網(wǎng)頁標題節(jié)點;根據(jù)網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié)點在DOM樹中的相對位置關系確定網(wǎng)頁發(fā)布時間。
在一個實施例中,根據(jù)網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié)點在DOM樹中的相對位置關系確定網(wǎng)頁發(fā)布時間包括:如果在網(wǎng)頁標題節(jié)點所屬的父節(jié)點下有時間節(jié)點,將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間。
在一個實施例中,如果在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下有時間葉子節(jié)點,將時間葉子節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間;或者,如果在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下有時間所在的標簽,從時間所在的標簽中提取時間信息并作為網(wǎng)頁發(fā)布時間。
在一個實施例中,根據(jù)網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié)點在DOM樹中的相對位置關系確定網(wǎng)頁發(fā)布時間包括:確定網(wǎng)頁標題節(jié)點的父節(jié)點的次左子節(jié)點,如果次左子節(jié)點的若干子樹下的左子樹節(jié)點是時間節(jié)點,將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間。
在一個實施例中,根據(jù)網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié)點在DOM樹中的相對位置關系確定網(wǎng)頁發(fā)布時間包括:如果在網(wǎng)頁標題節(jié)點所屬的父節(jié)點下有時間節(jié)點,將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間;如果在網(wǎng)頁標題節(jié)點所屬的父節(jié)點下沒有時間節(jié)點,確定網(wǎng)頁標題節(jié)點的父節(jié)點的次左子節(jié)點,如果次左子節(jié)點的若干子樹下的左子樹節(jié)點是時間節(jié)點,將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間。
在一個實施例中,根據(jù)網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié)點在DOM樹中的相對位置關系確定網(wǎng)頁發(fā)布時間包括:如果在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下有時間葉子節(jié)點,將時間葉子節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間;如果在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下沒有時間葉子節(jié)點,在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下查找是否有時間所在的標簽,如果有,從時間所在的標簽中提取時間信息并作為網(wǎng)頁發(fā)布時間;如果網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點沒有時間所在的標簽,確定網(wǎng)頁標題節(jié)點的父節(jié)點的次左子節(jié)點,如果次左子節(jié)點的若干子樹下的左子樹節(jié)點是時間節(jié)點,將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間。
在一個實施例中,根據(jù)網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié)點在DOM樹中的相對位置關系確定網(wǎng)頁發(fā)布時間包括:在DOM樹中查找時間節(jié)點,判斷查找到的時間節(jié)點與網(wǎng)頁標題節(jié)點是否符合網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié)點在DOM樹中的相對位置關系,將符合條件的時間節(jié)點確定為網(wǎng)頁發(fā)布時間節(jié)點,并從網(wǎng)頁發(fā)布時間節(jié)點中提取網(wǎng)頁發(fā)布時間。
在一個實施例中,方法還包括:如果符合條件的時間節(jié)點有多個,將離DOM樹的根節(jié)點近的符合條件的時間節(jié)點確定為網(wǎng)頁發(fā)布時間節(jié)點。
在一個實施例中,在DOM樹中確定網(wǎng)頁標題節(jié)點包括:根據(jù)網(wǎng)頁標題所在的標簽類型、唯一編碼屬性或者類屬性在DOM樹中確定網(wǎng)頁標題節(jié)點。
根據(jù)本發(fā)明實施例的第二個方面,提供一種用于網(wǎng)頁發(fā)布時間抽取的裝置,包括:文檔對象模型DOM樹建立模塊,用于建立網(wǎng)頁源碼的DOM樹;標題節(jié)點確定模塊,用于在DOM樹中確定網(wǎng)頁標題節(jié)點;發(fā)布時間確定模塊,用于根據(jù)網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié)點在DOM樹中的相對位置關系確定網(wǎng)頁發(fā)布時間。
在一個實施例中,發(fā)布時間確定模塊包括第一時間節(jié)點查找單元和第一時間信息提取單元;第一時間節(jié)點查找單元用于查找在網(wǎng)頁標題節(jié)點所屬的父節(jié)點下是否有時間節(jié)點,如果有,第一時間信息提取單元用于將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間。
在一個實施例中,第一時間節(jié)點查找單元用于查找在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下是否有時間葉子節(jié)點,如果有,第一時間信息提取單元用于將時間葉子節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間;或者,第一時間節(jié)點查找單元用于查找在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下是否有時間所在的標簽,如果有,第一時間信息提取單元用于從時間所在的標簽中提取時間信息并作為網(wǎng)頁發(fā)布時間。
在一個實施例中,發(fā)布時間確定模塊包括第二時間節(jié)點查找單元 和第二時間信息提取單元;第二時間節(jié)點查找單元用于確定網(wǎng)頁標題節(jié)點的父節(jié)點的次左子節(jié)點,并查找在次左子節(jié)點的若干子樹下的左子樹節(jié)點是否有時間節(jié)點,如果有,第二時間信息提取單元用于將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間。
在一個實施例中,發(fā)布時間確定模塊包括第三時間節(jié)點查找單元和第三時間信息提取單元;發(fā)布時間確定模塊用于查找在網(wǎng)頁標題節(jié)點所屬的父節(jié)點下是否有時間節(jié)點,如果有,第三時間信息提取單元用于將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間;發(fā)布時間確定模塊還用于在網(wǎng)頁標題節(jié)點所屬的父節(jié)點下沒有時間節(jié)點時,確定網(wǎng)頁標題節(jié)點的父節(jié)點的次左子節(jié)點,并判斷次左子節(jié)點的若干子樹下的左子樹節(jié)點是否為時間節(jié)點,如果是,第三時間信息提取單元用于將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間。
在一個實施例中,發(fā)布時間確定模塊包括第四時間節(jié)點查找單元和第四時間信息提取單元;第四時間節(jié)點查找單元用于查找在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下是否有時間葉子節(jié)點,如果有,第四時間信息提取單元用于將時間葉子節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間;第四時間節(jié)點查找單元還用于在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下沒有時間葉子節(jié)點時,查找在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下是否有時間所在的標簽,如果有,第四時間信息提取單元用于從時間所在的標簽中提取時間信息并作為網(wǎng)頁發(fā)布時間;第四時間節(jié)點查找單元還用于在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點沒有時間所在的標簽時,確定網(wǎng)頁標題節(jié)點的父節(jié)點的次左子節(jié)點,并查找次左子節(jié)點的若干子樹下的左子樹節(jié)點是否有時間節(jié)點,如果有,第四時間信息提取單元用于將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間。
在一個實施例中,發(fā)布時間確定模塊包括第五時間節(jié)點查找單元、位置關系判斷單元和第五時間信息提取單元;第五時間節(jié)點查找單元用于在DOM樹中查找時間節(jié)點;位置關系判斷單元用于判斷查找到的時間節(jié)點與網(wǎng)頁標題節(jié)點是否符合網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié) 點在DOM樹中的相對位置關系;第五時間信息提取單元用于將符合條件的時間節(jié)點確定為網(wǎng)頁發(fā)布時間節(jié)點,并從網(wǎng)頁發(fā)布時間節(jié)點中提取網(wǎng)頁發(fā)布時間。
在一個實施例中,第五時間信息提取單元用于當符合條件的時間節(jié)點有多個時,將離DOM樹的根節(jié)點近的符合條件的時間節(jié)點確定為網(wǎng)頁發(fā)布時間節(jié)點。
在一個實施例中,標題節(jié)點確定模塊用于根據(jù)網(wǎng)頁標題所在的標簽類型、唯一編碼屬性或者類屬性在DOM樹中確定網(wǎng)頁標題節(jié)點。
通過根據(jù)DOM中網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié)點的位置關系確定網(wǎng)頁發(fā)布時間,能夠準確定位網(wǎng)頁發(fā)布時間,適用于自動化的網(wǎng)頁發(fā)布時間抽取。
通過以下參照附圖對本發(fā)明的示例性實施例的詳細描述,本發(fā)明的其它特征及其優(yōu)點將會變得清楚。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示出本發(fā)明網(wǎng)頁發(fā)布時間抽取方法的一個實施例的流程圖。
圖2示出資訊類網(wǎng)頁的部分截圖的示意圖。
圖3示出圖2所示的部分網(wǎng)頁對應的一種代碼中的文本和標簽構成的DOM樹的示意圖。
圖4示出圖2所示的部分網(wǎng)頁對應的另一種代碼中的文本和標簽構成的DOM樹的示意圖。
圖5示出圖2所示的部分網(wǎng)頁對應的又一種代碼中的文本和標簽構成的DOM樹的示意圖。
圖6示出本發(fā)明用于網(wǎng)頁發(fā)布時間抽取的裝置的一個實施例的結 構圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。以下對至少一個示例性實施例的描述實際上僅僅是說明性的,決不作為對本發(fā)明及其應用或使用的任何限制?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
下面參考圖1描述本發(fā)明一個實施例的網(wǎng)頁發(fā)布時間抽取方法。
圖1為本發(fā)明網(wǎng)頁發(fā)布時間抽取方法的一個實施例的流程圖。如圖1所示,該實施例的方法包括:
步驟S102,建立網(wǎng)頁源碼的DOM(Document Object Model,文檔對象模型)樹。
DOM可以采用獨立于平臺和語言的方式訪問和修改HTML、XML文檔的內容和結構。在根據(jù)HTML文檔建立的DOM樹中,每一個標簽或者文本節(jié)點都是DOM樹中的一個節(jié)點。
步驟S104,在DOM樹中確定網(wǎng)頁標題節(jié)點。
其中,網(wǎng)頁標題節(jié)點可以是在DOM樹中網(wǎng)頁標題文本所在的節(jié)點,也可以是網(wǎng)頁標題所在標簽的節(jié)點。
步驟S106,根據(jù)網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié)點在DOM樹中的相對位置關系確定網(wǎng)頁發(fā)布時間。
其中,網(wǎng)頁發(fā)布時間節(jié)點可以是在DOM樹中網(wǎng)頁發(fā)布時間文本所在的節(jié)點,也可以是網(wǎng)頁發(fā)布時間所在標簽的節(jié)點。
通過根據(jù)DOM中網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié)點的位置關系確定網(wǎng)頁發(fā)布時間,能夠準確定位網(wǎng)頁發(fā)布時間,適用于自動化的網(wǎng)頁發(fā)布時間抽取。
在步驟S104中,可以根據(jù)網(wǎng)頁標題所在的標簽類型、唯一編碼屬性或者類屬性在DOM樹中確定網(wǎng)頁標題節(jié)點。標題的本文通常放置 在特殊的標簽中,例如放置在表示大號字體的h1標簽或者表示鏈接的a標簽中。除了使用特殊標簽對網(wǎng)頁標題所在的標簽加以識別以外,還可以通過網(wǎng)頁標題所在的標簽的具體屬性內容確定網(wǎng)頁標題所在的DOM節(jié)點。標簽可以通過id(唯一編碼)屬性或者class(類)屬性的具體內容標注標簽的內容的具體含義,具有標題的標簽例如可以為:<div id=”title”>標題</div>,div標簽通過其id屬性中的“title”標注其包含的內容為標題。顯然,也可以采用其他方法確定網(wǎng)頁標題所在的標簽,這里不再贅述。
通常,在解析后的、呈現(xiàn)在瀏覽器中的網(wǎng)頁中,網(wǎng)頁發(fā)布時間往往緊隨網(wǎng)頁標題之后。而由于各個網(wǎng)頁的具體前端布局不同,對于呈現(xiàn)在網(wǎng)頁中的形式相同的兩個頁面,其源代碼的結構可能不同,即,網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié)點在DOM樹中的相對位置關系可能不同。經(jīng)過對大量的資訊類的網(wǎng)頁進行統(tǒng)計和分析可知,網(wǎng)頁的發(fā)布時間所在的DOM節(jié)點與網(wǎng)頁標題所在的DOM節(jié)點的相對位置關系主要有兩種。圖2為資訊類網(wǎng)頁的部分截圖的示意圖。下面以圖2為例,具體闡述根據(jù)網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié)點在DOM樹中的相對位置關系確定網(wǎng)頁發(fā)布時間的兩種方法。
第一種確定方法為:如果在網(wǎng)頁標題節(jié)點所屬的父節(jié)點下有時間節(jié)點,將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間。根據(jù)網(wǎng)頁發(fā)布時間節(jié)點為文本節(jié)點或者標簽節(jié)點的差異,第一種確定方法還可以具體分為以下的兩種形式:如果在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下有時間葉子節(jié)點,將時間葉子節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間;或者,如果在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下有時間所在的標簽,從時間所在的標簽中提取時間信息并作為網(wǎng)頁發(fā)布時間。下面結合圖2中的部分網(wǎng)頁的代碼對第一種確定方法的兩種具體形式進行示例性的闡述。
當網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下有時間葉子節(jié)點時,對于網(wǎng)頁中圖2展示的網(wǎng)頁部分截圖的代碼例如可以為:
<div><h1>一種網(wǎng)頁發(fā)布時間抽取方法</h1>2016-1-1<span>120 次閱讀</span></div>
圖3為由上述代碼中各個文本及標簽構成的DOM樹的結構示意圖。如圖3所示,網(wǎng)頁標題所在的標簽節(jié)點為h1節(jié)點,h1節(jié)點的父節(jié)點為div節(jié)點,查找div節(jié)點的其他子節(jié)點,可以獲取“2016-1-1”這一時間葉子節(jié)點,“2016-1-1”即為網(wǎng)頁發(fā)布時間。
當網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下有時間所在的標簽時,對于網(wǎng)頁中圖2展示的網(wǎng)頁部分截圖的代碼例如可以為:
<div><h1>一種網(wǎng)頁發(fā)布時間抽取方法</h1><span>2016-1-1</span><span>120次閱讀</span></div>
圖4為由上述代碼中各個文本及標簽構成的DOM樹的結構示意圖。由圖4可知,網(wǎng)頁標題所在的標簽節(jié)點為h1節(jié)點,h1節(jié)點的父節(jié)點為div節(jié)點,查找div節(jié)點的其他子節(jié)點,可以獲取包含“2016-1-1”這一時間的span標簽,繼而從span標簽中提取時間信息,其中的“2016-1-1”即為網(wǎng)頁發(fā)布時間。
第一種確定方法通常用于前端代碼的層次布局較為簡單的網(wǎng)頁。網(wǎng)頁標題節(jié)點和時間節(jié)點不僅在網(wǎng)頁的視覺呈現(xiàn)中距離較近,同時在DOM樹中的層次相差也較小。通過采用這種確定方法,能夠迅速地定位網(wǎng)頁發(fā)布時間節(jié)點,并準確地提取網(wǎng)頁發(fā)布時間。
對于第一種確定方法中的兩種具體方法,可以先采用前者,再采用后者,即,如果在網(wǎng)頁標題節(jié)點所屬的父節(jié)點下有時間節(jié)點,將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間;如果在網(wǎng)頁標題節(jié)點所屬的父節(jié)點下沒有時間節(jié)點,確定網(wǎng)頁標題節(jié)點的父節(jié)點的次左子節(jié)點,如果次左子節(jié)點的若干子樹下的左子樹節(jié)點是時間節(jié)點,將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間。
第二種確定方法為:確定網(wǎng)頁標題節(jié)點的父節(jié)點的次左子節(jié)點,如果次左子節(jié)點的若干子樹下的左子樹節(jié)點是時間節(jié)點,將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間。當采用第二種確定方法獲得網(wǎng)頁發(fā)布時間時,對于網(wǎng)頁中圖2展示的部分的代碼例如可以為:
<div><h1>一種網(wǎng)頁發(fā)布時間抽取方法</h1><p> <span>2016-1-1</span><h4>120次閱讀</h4></p></div>
圖5為由上述代碼中各個文本及標簽構成的DOM樹的結構示意圖。如圖5所示,網(wǎng)頁標題節(jié)點的父節(jié)點為div節(jié)點該div節(jié)點的次左子節(jié)點為p標簽,p標簽下具有兩個子樹,分別為根節(jié)點為span的子樹和根節(jié)點為h4的子樹。其中,根節(jié)點為span的子樹為p標簽的左子樹,查找根節(jié)點為span的子樹中的時間節(jié)點,可以獲取“2016-1-1”這一時間信息,“2016-1-1”即為網(wǎng)頁發(fā)布時間。這種情況通常出現(xiàn)在前端代碼的層次布局較為復雜的網(wǎng)頁中。
第二種確定方法通常用于前端代碼的層次布局較為復雜的網(wǎng)頁。雖然網(wǎng)頁標題節(jié)點和時間節(jié)點在DOM樹中的層次相差較大,但是依舊可以通過上述方法確定在網(wǎng)頁的視覺呈現(xiàn)中距離網(wǎng)頁標題較近的時間節(jié)點。通過采用這種確定方法,能夠應對網(wǎng)頁布局復雜的情況,并準確地提取網(wǎng)頁發(fā)布時間。
對于上述兩種確定方法,可以先采用第一種確定方法,再采用第二種確定方法。即首先查找距離網(wǎng)頁標題節(jié)點層次較近的節(jié)點中是否有時間節(jié)點,再查找距離網(wǎng)頁標題節(jié)點層次較遠的節(jié)點中是否有時間節(jié)點。
在前述兩種確定方法中,具體的確定順序為:首先確定符合網(wǎng)頁標題節(jié)點和網(wǎng)頁發(fā)布時間節(jié)點的位置關系的節(jié)點,再判斷這些符合位置關系的節(jié)點是否為時間節(jié)點。從另一個角度,還可以采用先確定網(wǎng)頁中的時間節(jié)點,再判斷這些時間節(jié)點是否符合網(wǎng)頁標題節(jié)點和網(wǎng)頁發(fā)布時間節(jié)點的位置關系的確定順序,即:在DOM樹中查找時間節(jié)點,判斷查找到的時間節(jié)點與網(wǎng)頁標題節(jié)點是否符合網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié)點在DOM樹中的相對位置關系,將符合條件的時間節(jié)點確定為網(wǎng)頁發(fā)布時間節(jié)點,并從網(wǎng)頁發(fā)布時間節(jié)點中提取網(wǎng)頁發(fā)布時間。兩種確定順序分別從不同的角度著手進行查找和判斷,當網(wǎng)頁前端代碼的層次結構相對簡單時,采用前一種方法較為快捷;當網(wǎng)頁中包含的時間信息較少時,采用后一種方法效率更高。
當采用第二種確定順序,即采用先查找時間節(jié)點、再判斷位置關 系的方式時,可能會得到多個結果,此時可以采用以下方法從中選取結果:如果符合條件的時間節(jié)點有多個,將離DOM樹的根節(jié)點近的符合條件的時間節(jié)點確定為網(wǎng)頁發(fā)布時間節(jié)點。離DOM樹較近的符合條件的時間節(jié)點與標題節(jié)點的層次關系較為簡單,因此相較于其他節(jié)點,更有可能為包含網(wǎng)頁發(fā)布時間的節(jié)點。
在上述查找時間節(jié)點的過程中,可以通過正則表達式判斷節(jié)點中的文本是否為表示時間的文本。Java語言、Python語言、JavaScript語言等主流語言均支持根據(jù)正則表達式提取文本,可以根據(jù)實際使用環(huán)境以及后續(xù)處理的需求選擇正則匹配工具。
下面參考圖6描述本發(fā)明一個實施例的用于網(wǎng)頁發(fā)布時間抽取的裝置。
圖6為本發(fā)明用于網(wǎng)頁發(fā)布時間抽取的裝置的一個實施例的結構圖。如圖6所示,該實施例的裝置包括:文檔對象模型DOM樹建立模塊62,用于建立網(wǎng)頁源碼的DOM樹;標題節(jié)點確定模塊64,用于在DOM樹中確定網(wǎng)頁標題節(jié)點;發(fā)布時間確定模塊66,用于根據(jù)網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié)點在DOM樹中的相對位置關系確定網(wǎng)頁發(fā)布時間。
其中,發(fā)布時間確定模塊66具體可以采用以下幾種具體結構。
第一種結構為:發(fā)布時間確定模塊66可以包括第一時間節(jié)點查找單元和第一時間信息提取單元;第一時間節(jié)點查找單元用于查找在網(wǎng)頁標題節(jié)點所屬的父節(jié)點下是否有時間節(jié)點,如果有,第一時間信息提取單元用于將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間。
此外,第一時間節(jié)點查找單元還可以用于查找在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下是否有時間葉子節(jié)點,如果有,第一時間信息提取單元用于將時間葉子節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間;或者,第一時間節(jié)點查找單元用于查找在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下是否有時間所在的標簽,如果有,第一時間信息提取單元用于從時間所在的標簽中提取時間信息并作為網(wǎng)頁發(fā)布時間。
第二種結構為:發(fā)布時間確定模塊66可以包括第二時間節(jié)點查找單元和第二時間信息提取單元;第二時間節(jié)點查找單元用于確定網(wǎng)頁標題節(jié)點的父節(jié)點的次左子節(jié)點,并查找在次左子節(jié)點的若干子樹下的左子樹節(jié)點是否有時間節(jié)點,如果有,第二時間信息提取單元用于將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間。
第三種結構為:發(fā)布時間確定模塊66可以包括第三時間節(jié)點查找單元和第三時間信息提取單元;發(fā)布時間確定模塊66用于查找在網(wǎng)頁標題節(jié)點所屬的父節(jié)點下是否有時間節(jié)點,如果有,第三時間信息提取單元用于將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間;發(fā)布時間確定模塊66還用于在網(wǎng)頁標題節(jié)點所屬的父節(jié)點下沒有時間節(jié)點時,確定網(wǎng)頁標題節(jié)點的父節(jié)點的次左子節(jié)點,并判斷次左子節(jié)點的若干子樹下的左子樹節(jié)點是否為時間節(jié)點,如果是,第三時間信息提取單元用于將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間。
第四種結構為:發(fā)布時間確定模塊66可以包括第四時間節(jié)點查找單元和第四時間信息提取單元;第四時間節(jié)點查找單元用于查找在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下是否有時間葉子節(jié)點,如果有,第四時間信息提取單元用于將時間葉子節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間;第四時間節(jié)點查找單元還用于在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下沒有時間葉子節(jié)點時,查找在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點下是否有時間所在的標簽,如果有,第四時間信息提取單元用于從時間所在的標簽中提取時間信息并作為網(wǎng)頁發(fā)布時間;第四時間節(jié)點查找單元還用于在網(wǎng)頁標題所在的標簽對應的節(jié)點所屬的父節(jié)點沒有時間所在的標簽時,確定網(wǎng)頁標題節(jié)點的父節(jié)點的次左子節(jié)點,并查找次左子節(jié)點的若干子樹下的左子樹節(jié)點是否有時間節(jié)點,如果有,第四時間信息提取單元用于將時間節(jié)點中的時間信息提取為網(wǎng)頁發(fā)布時間。
第五種結構為:發(fā)布時間確定模塊66可以包括第五時間節(jié)點查找單元、位置關系判斷單元和第五時間信息提取單元;第五時間節(jié)點查找單元用于在DOM樹中查找時間節(jié)點;位置關系判斷單元用于判斷 查找到的時間節(jié)點與網(wǎng)頁標題節(jié)點是否符合網(wǎng)頁發(fā)布時間節(jié)點與網(wǎng)頁標題節(jié)點在DOM樹中的相對位置關系;第五時間信息提取單元用于將符合條件的時間節(jié)點確定為網(wǎng)頁發(fā)布時間節(jié)點,并從網(wǎng)頁發(fā)布時間節(jié)點中提取網(wǎng)頁發(fā)布時間。
此外,第五時間信息提取單元可以用于當符合條件的時間節(jié)點有多個時,將離DOM樹的根節(jié)點近的符合條件的時間節(jié)點確定為網(wǎng)頁發(fā)布時間節(jié)點。
標題節(jié)點確定模塊64可以用于根據(jù)網(wǎng)頁標題所在的標簽類型、唯一編碼屬性或者類屬性在DOM樹中確定網(wǎng)頁標題節(jié)點。
此外,根據(jù)本發(fā)明的方法還可以實現(xiàn)為一種計算機程序產品,該計算機程序產品包括計算機可讀介質,在該計算機可讀介質上存儲有用于執(zhí)行本發(fā)明的方法中限定的上述功能的計算機程序。本領域技術人員還將明白的是,結合這里的公開所描述的各種示例性邏輯塊、模塊、電路和算法步驟可以被實現(xiàn)為電子硬件、計算機軟件或兩者的組合。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。