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