一種數據處理方法及伺服器與流程
2023-05-03 01:02:16 2

本發明涉及數據處理技術,尤其涉及一種數據處理方法及伺服器。
背景技術:
通過頁面連結下載到頁面數據後,還需要對頁面數據進行抽取,得到最終的目標數據。這個過程中,需要調用下載功能和數據抽取功能,然而,目前的下載功能和數據抽取功能具有強耦合關係,即:下載功能執行後直接調用數據抽取功能進行數據抽取。這種方式下,要對不同的頁面結構開發不同的數據抽取功能;或者,通過通用的數據抽取功能進行數據抽取,但是不能處理較複雜的頁面結構。
可見,現有的下載功能和數據抽取功能耦合度較高,不易分布式部署網絡數據;對複雜結構的頁面數據抽取不夠準確。
技術實現要素:
為解決上述技術問題,本發明實施例提供了一種數據處理方法及伺服器。
本發明實施例提供的數據處理方法,包括:
從資料庫中分別讀取第一類型數據和第二類型數據;
將所述第一類型數據插入第一隊列中,將所述第二類型數據插入第二隊列中;
對所述第一隊列進行下載處理時,從所述第一隊列中獲取第一類型數據,依據所述第一類型數據下載得到第二類型數據;將所述下載得到的第二類型數據存入所述資料庫;
對所述第二隊列進行抽取處理時,從所述第二隊列中獲取第二類型數據,對所述第二類型數據進行解析,抽取得到對象數據;將所述對象存入所述資料庫。
本發明實施例中,所述從資料庫中讀取第一類型數據,為:從資料庫中讀取連結類型數據。
本發明實施例中,所述對所述第二類型數據進行解析,抽取得到對象數據,包括:
對所述第二類型數據進行解析,抽取得到結構化數據和/或連結類型數據,其中,所述連結類型數據是指所述第一類型數據。
本發明實施例中,所述資料庫對所述第一類型數據和所述第二類型數據進行分區域存儲,其中,所述第一類型數據存儲在資料庫中的第一存儲區域,所述第二類型數據存儲在資料庫中的第二存儲區域;
所述從資料庫中分別讀取第一類型數據和第二類型數據,包括:
從所述第一存儲區域中讀取第一類型數據,從所述第二存儲區域讀取第二類型數據。
本發明實施例中,所述方法還包括:
循環執行所述下載處理和所述抽取處理,直至所述資料庫中的第一類型數據和第二類型數據被處理完成為止。
本發明實施例提供的伺服器,包括:
調度模塊,用於從資料庫中分別讀取第一類型數據和第二類型數據;將所述第一類型數據插入第一隊列中,將所述第二類型數據插入第二隊列中;
隊列模塊,用於通過第一隊列存儲第一類型數據,通過第二隊列存儲第二類型數據;
下載模塊,用於對所述第一隊列進行下載處理時,從所述第一隊列中獲取第一類型數據,依據所述第一類型數據下載得到第二類型數據;將所述下載得到的第二類型數據存入所述資料庫;
抽取模塊,用於對所述第二隊列進行抽取處理時,從所述第二隊列中獲取第二類型數據,對所述第二類型數據進行解析,抽取得到對象數據;將所述對象存入所述資料庫。
本發明實施例中,所述調度模塊,具體用於從資料庫中讀取連結類型數據。
本發明實施例中,所述抽取模塊,具體用於對所述第二類型數據進行解析,抽取得到結構化數據和/或連結類型數據,其中,所述連結類型數據是指所述第一類型數據。
本發明實施例中,所述資料庫對所述第一類型數據和所述第二類型數據進行分區域存儲,其中,所述第一類型數據存儲在資料庫中的第一存儲區域,所述第二類型數據存儲在資料庫中的第二存儲區域;
所述調度模塊,具體用於從所述第一存儲區域中讀取第一類型數據,從所述第二存儲區域讀取第二類型數據。
本發明實施例中,所述伺服器中的各個模塊循環執行所述下載處理和所述抽取處理,直至所述資料庫中的第一類型數據和第二類型數據被處理完成為止。
本發明實施例的技術方案中,從資料庫中分別讀取第一類型數據和第二類型數據;將所述第一類型數據插入第一隊列中,將所述第二類型數據插入第二隊列中;對所述第一隊列進行下載處理時,從所述第一隊列中獲取第一類型數據,依據所述第一類型數據下載得到第二類型數據;將所述下載得到的第二類型數據存入所述資料庫;對所述第二隊列進行抽取處理時,從所述第二隊列中獲取第二類型數據,對所述第二類型數據進行解析,抽取得到對象數據;將所述對象存入所述資料庫。採用本發明實施例的技術方案,下載功能與數據抽取功能相分離,並以隊列的方式進行數據的傳遞,使數據處理系統高度分離,易於擴展;此外,抽取功能使用預配置的模型進行數據抽取,使抽取得到的數據更準確,並提高系統的可用性。
附圖說明
圖1為本發明實施例的數據處理方法的流程示意圖;
圖2為本發明實施例的數據處理方法的循環框圖;
圖3為本發明實施例的伺服器的結構組成示意圖。
具體實施方式
為了能夠更加詳盡地了解本發明實施例的特點與技術內容,下面結合附圖對本發明實施例的實現進行詳細闡述,所附附圖僅供參考說明之用,並非用來限定本發明實施例。
圖1為本發明實施例的數據處理方法的流程示意圖,如圖1所示,所述數據處理方法包括以下步驟:
步驟101:從資料庫中分別讀取第一類型數據和第二類型數據。
本發明實施例中,第一類型數據是指連結類型數據,這裡,連結類型數據是指可以用來進行下載操作的數據(以下簡稱為待下載數據),例如統一資源定位符(URL,Uniform Resoure Locator)。
本發明實施例中,第二類型數據是指待抽取數據。
基於此,所述從資料庫中讀取第一類型數據,為:從資料庫中讀取連結類型數據。
本發明實施例中,所述資料庫對所述第一類型數據和所述第二類型數據進行分區域存儲,其中,所述第一類型數據存儲在資料庫中的第一存儲區域,所述第二類型數據存儲在資料庫中的第二存儲區域。
具體實現時,第一存儲區域和第二存儲區域可以位於不同的磁碟空間中或者內存空間中。對不同類型的數據進行分區域存儲可以使得後續的讀取操作更加快速。
相應地,所述從資料庫中分別讀取第一類型數據和第二類型數據,包括:
從所述第一存儲區域中讀取第一類型數據,從所述第二存儲區域讀取第二類型數據。
步驟102:將所述第一類型數據插入第一隊列中,將所述第二類型數據插入第二隊列中。
本發明實施例提供了數據隊列,具體地,提供了兩個數據隊列,分別為第一數據隊列和第二數據隊列。其中,將所述第一類型數據插入第一隊列中,將所述第二類型數據插入第二隊列中。
本發明實施例中,數據隊列都有一定的容量,可以從資料庫中將讀取到的數據按照先入先出的原則進行處理。例如,首次從資料庫中讀取的數據量要小於或等於隊列的容量。在後續將數據存入隊列時,需要隊列中有空閒的位置時,才可以將數據存入空閒的隊列中,以避免數據露處理。
步驟103:對所述第一隊列進行下載處理時,從所述第一隊列中獲取第一類型數據,依據所述第一類型數據下載得到第二類型數據;將所述下載得到的第二類型數據存入所述資料庫。
本發明實施例中,依據所述第一類型數據下載得到第二類型數據具體為:依據連結型數據下載得到頁面相關的數據。
步驟104:對所述第二隊列進行抽取處理時,從所述第二隊列中獲取第二類型數據,對所述第二類型數據進行解析,抽取得到對象數據;將所述對象存入所述資料庫。
本發明實施例中,對所述第二類型數據進行解析,抽取得到結構化數據和/或連結類型數據,其中,所述連結類型數據是指所述第一類型數據。這裡,結構化數據是指最終的目標數據,無需再處理。
本發明實施例中,循環執行所述下載處理和所述抽取處理,直至所述資料庫中的第一類型數據和第二類型數據被處理完成為止。
採用本發明實施例的技術方案,下載功能與數據抽取功能相分離,並以隊列的方式進行數據的傳遞,使數據處理系統高度分離,易於擴展;此外,抽取功能使用預配置的模型進行數據抽取,使抽取得到的數據更準確,並提高系統的可用性。
圖2為本發明實施例的數據處理方法的循環框圖,如圖2所示,所述方法包括:
1)調度模塊負責將待處理數據(包括待下載數據和待抽取數據)插入隊列中。
2)下載模塊從隊列中獲取待下載數據進行下載,下載入庫的數據就是新的待抽取數據。
3)抽取模塊從隊列中獲取待抽取數據進行數據解析,解析結果為結構化數據或者連結型數據(也即待下載數據),將結構化數據存入資料庫中的對象庫;將連結型數據存入資料庫中作為新的待下載數據。
由上述1)、2)和3)形成一個閉環,一直循環下去,直至數據處理結束。
圖3為本發明實施例的伺服器的結構組成示意圖,如圖3所示,所述伺服器包括:
調度模塊31,用於從資料庫中分別讀取第一類型數據和第二類型數據;將所述第一類型數據插入第一隊列中,將所述第二類型數據插入第二隊列中;
隊列模塊32,用於通過第一隊列存儲第一類型數據,通過第二隊列存儲第二類型數據;
下載模塊33,用於對所述第一隊列進行下載處理時,從所述第一隊列中獲取第一類型數據,依據所述第一類型數據下載得到第二類型數據;將所述下載得到的第二類型數據存入所述資料庫;
抽取模塊34,用於對所述第二隊列進行抽取處理時,從所述第二隊列中獲取第二類型數據,對所述第二類型數據進行解析,抽取得到對象數據;將所述對象存入所述資料庫。
本發明實施例中,所述調度模塊31,具體用於從資料庫中讀取連結類型數據。
本發明實施例中,所述抽取模塊34,具體用於對所述第二類型數據進行解析,抽取得到結構化數據和/或連結類型數據,其中,所述連結類型數據是指所述第一類型數據。
本發明實施例中,所述資料庫對所述第一類型數據和所述第二類型數據進行分區域存儲,其中,所述第一類型數據存儲在資料庫中的第一存儲區域,所述第二類型數據存儲在資料庫中的第二存儲區域;
所述調度模塊31,具體用於從所述第一存儲區域中讀取第一類型數據,從所述第二存儲區域讀取第二類型數據。
本發明實施例中,所述伺服器中的各個模塊循環執行所述下載處理和所述抽取處理,直至所述資料庫中的第一類型數據和第二類型數據被處理完成為止。
本領域技術人員應當理解,圖3所示的伺服器中的各單元的實現功能可參照前述數據處理方法的相關描述而理解。圖3所示的伺服器中的各單元的功能可通過運行於處理器上的程序而實現,也可通過具體的邏輯電路而實現。
本發明實施例所記載的技術方案之間,在不衝突的情況下,可以任意組合。
在本發明所提供的幾個實施例中,應該理解到,所揭露的方法和智能設備,可以通過其它的方式實現。以上所描述的設備實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,如:多個單元或組件可以結合,或可以集成到另一個系統,或一些特徵可以忽略,或不執行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過一些接口,設備或單元的間接耦合或通信連接,可以是電性的、機械的或其它形式的。
上述作為分離部件說明的單元可以是、或也可以不是物理上分開的,作為單元顯示的部件可以是、或也可以不是物理單元,即可以位於一個地方,也可以分布到多個網絡單元上;可以根據實際的需要選擇其中的部分或全部單元來實現本實施例方案的目的。
另外,在本發明各實施例中的各功能單元可以全部集成在一個第二處理單元中,也可以是各單元分別單獨作為一個單元,也可以兩個或兩個以上單元集成在一個單元中;上述集成的單元既可以採用硬體的形式實現,也可以採用硬體加軟體功能單元的形式實現。
以上所述,僅為本發明的具體實施方式,但本發明的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本發明揭露的技術範圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護範圍之內。