專利名稱::一種網(wǎng)頁表格數(shù)據(jù)抽取的方法一種網(wǎng)頁表格數(shù)據(jù)抽取的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及網(wǎng)絡網(wǎng)頁
技術(shù)領(lǐng)域:
,尤其涉及一種網(wǎng)頁表格數(shù)據(jù)抽取的方法。
背景技術(shù):
:隨著網(wǎng)頁技術(shù)的不斷發(fā)展,網(wǎng)頁顯示效果和包含的信息量日趨復雜,網(wǎng)頁結(jié)構(gòu)及內(nèi)容也實時更新。而要想從網(wǎng)頁中獲取指定的表格數(shù)據(jù),需要人工在大量冗長的網(wǎng)頁源代碼中查找表格所在的位置、標簽及屬性等,才能定位到表格對應的源碼,從而獲取表格數(shù)據(jù)。這樣不僅需要巨大的工作量,造成時間和精力的浪費,同時在繁雜的網(wǎng)頁代碼中查找也容易出錯,更無法滿足數(shù)據(jù)實時性的需求。W3C是英文WorldWideWebConsortium的縮寫,中文意思是W3C理事會或萬維網(wǎng)聯(lián)盟。W3C組織是對網(wǎng)絡標準制定的一個非贏利組織,像HTML、XHTML、CSS、XML的標準就是由W3C來定制?,F(xiàn)有技術(shù)中提供了一種信息抽取中基于DOM樹的過濾器方法,其出自“中國學術(shù)期刊網(wǎng)絡出版總庫”,公開日期為2009/9/15,來源中國過濾器網(wǎng),其描述的是頁面預處理的一種方法,將HTML解析成D0M,利用DOM樹的特性,不僅可以從大的邏輯單元抽取信息,還可以對更小的單元進行操作,以完成信息抽取工作中頁面預處理,從而大大提高信息抽取的效率和準確率。該方法還提供了三種過濾器,每個過濾器都是可以由用戶設置的,以完成不同程度的過濾,并以恰當?shù)捻樞蜻x擇和疊加各個過濾器,形成最佳預處理組合。該方法目標不是提取細粒度的數(shù)據(jù),而是過濾掉網(wǎng)頁中凌亂多余的信息,如廣告,無關(guān)鏈接等,即完成網(wǎng)頁中頁面的預處理。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題,在于提供一種網(wǎng)頁表格數(shù)據(jù)抽取的方法,實現(xiàn)從實時變化的網(wǎng)頁中準確快速抽取與原網(wǎng)頁顯示效果相同的表格,獲取指定行/列數(shù)據(jù)。本發(fā)明是這樣實現(xiàn)的一種網(wǎng)頁表格數(shù)據(jù)抽取的方法,其特征在于包括如下步驟步驟10、讀取網(wǎng)頁源碼,根據(jù)字符編碼將其網(wǎng)頁源碼解析成W3C的Document對象,獲取所述網(wǎng)頁表格中的任意兩個關(guān)鍵詞;步驟20、深度優(yōu)先遍歷Document對象中所有節(jié)點,分別獲取第一關(guān)鍵詞所屬的第一節(jié)點,第二關(guān)鍵詞所屬的第二節(jié)點;步驟30、獲取第一節(jié)點、第二節(jié)點具有唯一屬性的共同父節(jié)點,并利用唯一屬性獲取網(wǎng)頁表格定位條件;步驟40、利用所述網(wǎng)頁表格定位條件,遍歷Document對象,查找符合所述定位條件的節(jié)點,從而定位表格位置,記錄各個單元格數(shù)據(jù)的正確位置以及字號大小、字體顏色屬性,抽取與原網(wǎng)頁顯示效果相同的表格,并根據(jù)所述定位表格位置中的表格行/列值篩選得到要抽取的網(wǎng)頁表格指定的行/列數(shù)據(jù)。進一步的,所述步驟20中深度優(yōu)先遍歷Document對象中所有節(jié)點,分別獲取第一關(guān)鍵詞所屬的第一節(jié)點,第二關(guān)鍵詞所屬的第二節(jié)點,具體為步驟21、獲取Document對象的根節(jié)點root,并記為node;步驟22、遍歷所述node的每一個子節(jié)點childNode,判斷childNode是否為葉節(jié)點;是則獲取childNode的值,并轉(zhuǎn)入步驟23,否則遍歷查找childNode的每一個子節(jié)點,遍歷完成后仍無關(guān)鍵詞節(jié)點,則返回node的父節(jié)點,繼續(xù)查找所述node的剩余子節(jié)點;步驟23、判斷childNode是否包含關(guān)鍵詞,是則返回childNode,記為關(guān)鍵詞所屬的節(jié)點;否則繼續(xù)查找判斷childNode的兄弟節(jié)點。進一步的,所述步驟30獲取第一節(jié)點、第二節(jié)點具有唯一屬性的共同父節(jié)點,并利用唯一屬性獲取網(wǎng)頁表格定位條件,具體為步驟31、分別獲取第一節(jié)點node1、第二節(jié)點node2的父節(jié)點parentNode1、parentNode2,判斷是否相同;相同則返回parentNode,不同則繼續(xù)將parentNode1、parentNode2作為參數(shù)代入,遞歸查找,直至獲取距離nodel、node2最近的共同父節(jié)點parentNode;步驟32、獲取所述parentNode的唯一屬性,并利用唯一屬性獲取網(wǎng)頁表格定位條件具體為獲取parentNode的所有標簽屬性,并判斷是否存在唯一屬性,若存在唯一屬性,則利用該屬性得到網(wǎng)頁表格定位條件,即定位條件為格式為“tablel^ath=parentNode標簽名[唯一屬性名=對應屬性值]”,進入步驟40;若不存在唯一屬性,則獲取parentNode的父節(jié)點targetNode并查找其唯一屬性即用遞歸查找直至找到存在唯一屬性的父節(jié)點targetNode或者到達Document根節(jié)點為止;同時記錄查找過程的路徑標簽及parentNode在其父節(jié)點targetNode中的相對位置,用以拼接/修改得到網(wǎng)頁表格定位條件,即定位條件為格式為"tabIePath=targetNode標簽名[唯一屬性名=對應屬性值]/路徑標簽1[相對位置1]/路徑標簽2[相對位置2]/...,,或“tabIePath=Document根節(jié)點/路徑標簽1[相對位置1]/路徑標簽2[相對位2]/...ο本發(fā)明具有如下優(yōu)點本發(fā)明僅需網(wǎng)頁源代碼、欲抽取表格中的任意兩個關(guān)鍵詞以及需要的表格行/列值,即可從實時變化的網(wǎng)頁中抽取與原網(wǎng)頁顯示效果相同的表格,并通過篩選獲得表格指定行/列數(shù)據(jù),而不再需要手動從網(wǎng)頁源碼中通過查找表格位置、標簽屬性等方式來定位表格、獲取數(shù)據(jù)。本發(fā)明不僅簡化了網(wǎng)頁表格的抽取方式,提高了數(shù)據(jù)抽取的靈活性,滿足了數(shù)據(jù)實時性的需求,同時也提高了表格數(shù)據(jù)抽取的準確率。圖1為本發(fā)明方法流程示意圖。具體實施方式參照圖1所示,本發(fā)明的一種網(wǎng)頁表格數(shù)據(jù)抽取的方法,包括如下步驟步驟10、讀取網(wǎng)頁源碼,根據(jù)字符編碼將其網(wǎng)頁源碼解析成W3C的Document對象,獲取所述網(wǎng)頁表格中的任意兩個關(guān)鍵詞;步驟20、深度優(yōu)先遍歷Document對象中所有節(jié)點,分別獲取第一關(guān)鍵詞所屬的第一節(jié)點,第二關(guān)鍵詞所屬的第二節(jié)點;其中具體為步驟21、獲取Document對象的根節(jié)點root,并記為node;步驟22、遍歷所述node的每一個子節(jié)點childNode,判斷childNode是否為葉節(jié)點;是則獲取childNode的值,并轉(zhuǎn)入步驟23,否則遍歷查找childNode的每一個子節(jié)點,遍歷完成后仍無關(guān)鍵詞節(jié)點,則返回node的父節(jié)點,繼續(xù)查找所述node的剩余子節(jié)點;步驟23、判斷childNode是否包含關(guān)鍵詞,是則返回childNode,記為關(guān)鍵詞所屬的節(jié)點;否則繼續(xù)查找判斷childNode的兄弟節(jié)點。步驟30、獲取第一節(jié)點、第二節(jié)點具有唯一屬性的共同父節(jié)點,并利用唯一屬性獲取網(wǎng)頁表格定位條件;其具體為步驟31、分別獲取第一節(jié)點node1、第二節(jié)點node2的父節(jié)點parentNode1、parentNode2,判斷是否相同;相同則返回parentNode,不同則繼續(xù)將parentNode1、parentNode2作為參數(shù)代入,遞歸查找,直至獲取距離nodel、node2最近的共同父節(jié)點parentNode;步驟32、獲取所述parentNode的唯一屬性,并利用唯一屬性獲取網(wǎng)頁表格定位條件具體為獲取parentNode的所有標簽屬性,并判斷是否存在唯一屬性,若存在唯一屬性,則利用該屬性得到網(wǎng)頁表格定位條件,即定位條件為格式為“tablel^ath=parentNode標簽名(即parentNode所有標簽屬性中有唯一屬性的標簽)[唯一屬性名=對應屬性值]”,進入步驟40;若不存在唯一屬性,則獲取parentNode的父節(jié)點targetNode并查找其唯一屬性即用遞歸查找直至找到存在唯一屬性的父節(jié)點targetNode或者到達Document根節(jié)點為止;同時記錄查找過程的路徑標簽及parentNode在其父節(jié)點targetNode中的相對位置,用以拼接/修改得到網(wǎng)頁表格定位條件,即定位條件為格式為"tabIePath=targetNode標簽名[唯一屬性名=對應屬性值]/路徑標簽1[相對位置1]/路徑標簽2[相對位置2]/...,,或“tabIePath=Document根節(jié)點/路徑標簽1[相對位置1]/路徑標簽2[相對位2]/...ο步驟40、利用所述網(wǎng)頁表格定位條件,遍歷Document對象,查找符合所述定位條件的節(jié)點,從而定位表格位置,記錄各個單元格數(shù)據(jù)的正確位置以及字號大小、字體顏色屬性,抽取與原網(wǎng)頁顯示效果相同的表格,并根據(jù)所述定位表格位置中的表格行/列值篩選得到要抽取的網(wǎng)頁表格指定的行/列數(shù)據(jù)。下面結(jié)合具體實施例對獲取第一節(jié)點、第二節(jié)點具有唯一屬性的共同父節(jié)點,并利用唯一屬性獲取網(wǎng)頁表格定位條件作進一步的說明。例如網(wǎng)頁源代碼為<html>權(quán)利要求1.一種網(wǎng)頁表格數(shù)據(jù)抽取的方法,其特征在于包括如下步驟步驟10、讀取網(wǎng)頁源碼,根據(jù)字符編碼將其網(wǎng)頁源碼解析成W3C的Document對象,獲取所述網(wǎng)頁表格中的任意兩個關(guān)鍵詞;步驟20、深度優(yōu)先遍歷Document對象中所有節(jié)點,分別獲取第一關(guān)鍵詞所屬的第一節(jié)點,第二關(guān)鍵詞所屬的第二節(jié)點;步驟30、獲取第一節(jié)點、第二節(jié)點具有唯一屬性的共同父節(jié)點,并利用唯一屬性獲取網(wǎng)頁表格定位條件;步驟40、利用所述網(wǎng)頁表格定位條件,遍歷Document對象,查找符合所述定位條件的節(jié)點,從而定位表格位置,記錄各個單元格數(shù)據(jù)的正確位置以及字號大小、字體顏色屬性,抽取與原網(wǎng)頁顯示效果相同的表格,并根據(jù)所述定位表格位置中的表格行/列值篩選得到要抽取的網(wǎng)頁表格指定的行/列數(shù)據(jù)。2.根據(jù)權(quán)利要求1所述的一種網(wǎng)頁表格數(shù)據(jù)抽取的方法,其特征在于所述步驟20中深度優(yōu)先遍歷Document對象中所有節(jié)點,分別獲取第一關(guān)鍵詞所屬的第一節(jié)點,第二關(guān)鍵詞所屬的第二節(jié)點,具體為步驟21、獲取Document對象的根節(jié)點root,并記為node;步驟22、遍歷所述node的每一個子節(jié)點childNode,判斷childNode是否為葉節(jié)點;是則獲取childNode的值,并轉(zhuǎn)入步驟23,否則遍歷查找childNode的每一個子節(jié)點,遍歷完成后仍無關(guān)鍵詞節(jié)點,則返回node的父節(jié)點,繼續(xù)查找所述node的剩余子節(jié)點;步驟23、判斷childNode是否包含關(guān)鍵詞,是則返回childNode,記為關(guān)鍵詞所屬的節(jié)點;否則繼續(xù)查找判斷childNode的兄弟節(jié)點。3.根據(jù)權(quán)利要求2所述的一種網(wǎng)頁表格數(shù)據(jù)抽取的方法,其特征在于所述步驟30獲取第一節(jié)點、第二節(jié)點具有唯一屬性的共同父節(jié)點,并利用唯一屬性獲取網(wǎng)頁表格定位條件,具體為步驟31、分別獲取第一節(jié)點nodel、第二節(jié)點node2的父節(jié)點parentNodel、parentNode2,判斷是否相同;相同則返回parentNode,不同則繼續(xù)將parentNodel、parentNodd作為參數(shù)代入,遞歸查找,直至獲取距離nodel、n0de2最近的共同父節(jié)點parentNode;步驟32、獲取所述parentNode的唯一屬性,并利用唯一屬性獲取網(wǎng)頁表格定位條件具體為獲取parentNode的所有標簽屬性,并判斷是否存在唯一屬性,若存在唯一屬性,則利用該屬性得到網(wǎng)頁表格定位條件,即定位條件為格式為“tablel^ath=parentNode標簽名[唯一屬性名=對應屬性值]”,進入步驟40;若不存在唯一屬性,則獲取parentNode的父節(jié)點targetNode并查找其唯一屬性即用遞歸查找直至找到存在唯一屬性的父節(jié)點targetNode或者到達Document根節(jié)點為止;同時記錄查找過程的路徑標簽及parentNode在其父節(jié)點targetNode中的相對位置,用以拼接/修改得到網(wǎng)頁表格定位條件,即定位條件為格式為"tabIePath=targetNode標簽名[唯一屬性名=對應屬性值]/路徑標簽1[相對位置1]/路徑標簽2[相對位置2]/...,,或"tabIePath=Document根節(jié)點/路徑標簽1[相對位置1]/路徑標簽2[相對位置2J>>ο全文摘要本發(fā)明提供一種網(wǎng)頁表格數(shù)據(jù)抽取的方法,包括步驟10、讀取網(wǎng)頁源碼,根據(jù)字符編碼將其解析成W3C的Document對象,獲取所述網(wǎng)頁表格中的任意兩個關(guān)鍵詞;步驟20、深度優(yōu)先遍歷Document對象中所有節(jié)點,分別獲取兩關(guān)鍵詞所屬的兩個節(jié)點;步驟30、獲取兩節(jié)點具有唯一屬性的共同父節(jié)點,并利用唯一屬性獲取網(wǎng)頁表格定位條件;步驟40、利用網(wǎng)頁表格數(shù)據(jù)定位條件,過濾網(wǎng)頁源代碼,抽取和網(wǎng)頁顯示效果相同的網(wǎng)頁表格。本發(fā)明根據(jù)欲抽取網(wǎng)頁表格中的任意兩個關(guān)鍵詞以及需要的表格行/列值,即可從實時變化的網(wǎng)頁中準確快速抽取與原網(wǎng)頁顯示效果相同的表格,獲取指定行/列數(shù)據(jù),提高數(shù)據(jù)抽取的靈活性和準確率。文檔編號G06F17/30GK102254009SQ20111020045公開日2011年11月23日申請日期2011年7月15日優(yōu)先權(quán)日2011年7月15日發(fā)明者楊凡,林珊,黃建雄申請人:福建星網(wǎng)銳捷通訊股份有限公司