【技術實現步驟摘要】
本專利技術涉及計算機
,特別涉及一種抽取正文的方法及裝置。
技術介紹
正文抽取,是網頁結構化的一部分,是網頁進行文本挖掘的基礎。現有技術中,通過基于文字密度比、文字個數、標點符號個數等多個過濾指標的統計方法來進行正文抽取,其中,文字密度比,是指文字占所有字符的比例,所有字符中包含文字和html(HyperTextMarkupLanguage,超級文本標記語言)標簽內容。在現有的方法中,假設包含正文的節點中應該包含大量的密集的文字。由于網頁編寫的靈活性,有的網頁的html標簽中包含大量的css內容,有的網頁包含的少,因此文字密度比的變化范圍比較大。在現有的方法中需要設置文字密度和文字個數等多種閾值,針對不同的站點的一般要設置不同的文字密度的閾值。總之,現有技術中的抽取正文的方法比較復雜。
技術實現思路
本專利技術實施例提供了一種抽取正文的方法及裝置,能夠更加簡單的實現正文抽取。一方面,本專利技術提供了一種抽取正文的方法,包括:S1:獲取待抽取網頁中的層疊樣式表CSS內容;S2:根據所述CSS內容,確定所述待抽取網頁中的節點的寬度,根據所述待抽取網頁中的節點的寬度,確定包含正文內容的正文節點;S3:根據所述正文節點,對所述待抽取網頁進行清理,抽取所述待抽取網頁的正文。進一步地,所述S2,包括:A1:將所述待抽取網頁的body節點添加到第一預設隊列中;A2:從所述第一預 ...
【技術保護點】
一種抽取正文的方法,其特征在于,包括:S1:獲取待抽取網頁中的層疊樣式表CSS內容;S2:根據所述CSS內容,確定所述待抽取網頁中的節點的寬度,根據所述待抽取網頁中的節點的寬度,確定包含正文內容的正文節點;S3:根據所述正文節點,對所述待抽取網頁進行清理,抽取所述待抽取網頁的正文。
【技術特征摘要】
1.一種抽取正文的方法,其特征在于,包括:
S1:獲取待抽取網頁中的層疊樣式表CSS內容;
S2:根據所述CSS內容,確定所述待抽取網頁中的節點的寬度,根據所
述待抽取網頁中的節點的寬度,確定包含正文內容的正文節點;
S3:根據所述正文節點,對所述待抽取網頁進行清理,抽取所述待抽取
網頁的正文。
2.根據權利要求1所述的方法,其特征在于,所述S2,包括:
A1:將所述待抽取網頁的body節點添加到第一預設隊列中;
A2:從所述第一預設隊列的頭部取出當前節點,判斷當前節點中的非鏈
接字符個數是否大于等于所述待抽取網頁的全文的非鏈接字符的個數的預設
比例,如果是,則執行步驟A3,否則,執行步驟A7;
A3:獲取當前節點的所有兒子節點,確定所有兒子節點中帶有float屬
性的div節點的第一個數,以及所有兒子節點中td節點的第二個數,執行步
驟A4;
A4:根據所述第一個數或者所述第二個數,判斷當前節點是否滿足預設
條件,如果是,則執行步驟A5,否則,執行步驟A7;
A5:確定當前節點的寬度,判斷當前節點的寬度是否大于0,如果是,
則執行步驟A6,否則,執行步驟A7;
A6:確定當前節點的每個兒子節點的寬度,根據每個兒子節點的寬度,
從當前節點的兒子節點中確定出所述正文節點;
A7:將當前節點的所有兒子節點添加到所述第一預設隊列中,執行步驟
A2。
3.根據權利要求2所述的方法,其特征在于,所述A6,包括:
B1:遍歷當前節點的所有兒子節點,確定未知寬度的兒子節點的個數,
確定每個已知寬度的兒子節點的寬度;
B2:判斷未知寬度的兒子節點的個數是否大于0,如果是,執行步驟B3,
否則,執行步驟B4;
B3:根據當前節點的寬度和當前節點的每個已知寬度的兒子節點的寬
度,確定所有未知寬度的兒子節點的總寬度,根據所述總寬度,確定每個未
知寬度的兒子節點的寬度為未知寬度的兒子節點的寬度的平均值,執行B4;
B4:判斷當前節點的所有兒子節點中寬度最大的兒子節點的個數是否為
1,如果是,則執行步驟B5,否則,執行步驟B6;
B5:確定當前節點的所有兒子節點中寬度最大的兒子節點為所述正文節
點;
B6:確定當前節點的所有兒子節點中寬度最大的兒子節點為所述正文節
點中字符個數最多的節點為所述正文節點。
4.根據權利要求1所述的方法,其特征在于,所述S3中的所述根據所
述正文節點,對所述待抽取網頁進行清理,包括:
C1:刪除所述正文節點的所有兄弟節點;
C2:將所述正文節點的父親節點作為當前節點;
C3:判斷當前節點是否為Body節點,如果是,則執行步驟C5,否則,
執行步驟C4;
C4:刪除當前節點的兄弟節點,將當前節點的父親節點作為當前節點,
返回步驟C3;
C5:從所述正文節點的孩子節點中的最底層開始,從后往前,依次判斷
所述正文節點的孩子節點中的當前節點是否滿足刪除條件,其中,所述刪除
條件為:只包含鏈接,或者不包含所有預設符號,如果是,則刪除該當前節
點,否則,執行步驟C6;
C6:從所述正文節點的孩子節點中的最高層開始,從前往后,依次判斷
所述正文節點的孩子節點中的當前節點是否滿足所述刪除條件,如果是,則
刪除該當前節點,否則,結束當前流程。
5.根據權利要求1-4中任一所述的方法,其特征在于,所述S2中,所
\t述根據所述CSS內容,確定所述待抽取網頁中的節點的寬度,包括:
D1:獲取當前節點的class屬性中的類選擇器的值,將所述類選擇器的
值依次放入第二預設隊列中,作為待處理值;
D2:獲取當前節點的class屬性中的id選擇器的值,將所述id選擇器的
值依次放入第二預設隊列中,作為待處理值;
D3:判斷所述第二預設隊列是否為空,如果是,則執行步驟D10,否則,
執行步驟D4;
D4:從所述第二預設隊列中獲取當前待處理值,從所述第二預設隊列中
刪除所述當前待處理值;
D5:在當前節點的CSS字符串中,判斷是否能查找到當前待處理值對應
的選擇器出現的下一個位置,如果是,則執行步驟D6,否則,返回步驟D3;
D6:判斷在所述CSS內容中,當前待處理值對應的選擇器的前面的選擇
器是否與當前節點的父親節點一致,如果是,則執行步驟D7,否則,執行步
驟D3;
D7:判斷在所述CSS內容中,當前待處理值對應的選擇器的后面是否有
其他選擇器,如果是,則執行步驟D8,否則,執行步驟D3;
D8:判斷當前待處理值對應的選擇器中的width屬性值是否是絕對值,
如果是,則執行步驟D9,否則,執行步驟D3;
D9:將當前待處理值對應的選擇器中的width屬性值作為當前節點的寬
度,返回步驟D3;
D10:判斷當前節點的寬度是否為空,如果是,則執行步驟D11,否則,
輸出當前節點的寬度;
D11:判斷當前節點的HTML標簽中是否存在width屬性,如果是,則
執行步驟D12,否則,將當前節點的寬度設置為-1;
D12:判斷當前節點的HTML標簽中的width屬性值是否為絕對值,如
果是,則將當前節點的HTML標簽中的width屬性值作為當前節點的寬度,
否則,執行步驟D13;
D13:根據當前節點的父親節點的寬度,以及當前節點的HTML標簽中
的width屬性值,確定當前節點的寬度。
6.一種抽取正文的裝置,其特征在于,包括:
獲取單元,用于獲取待抽取網頁中的層疊樣式表CSS內容;
確定單元,用于...
【專利技術屬性】
技術研發人員:毛立花,孫海峰,王傳超,
申請(專利權)人:浪潮軟件集團有限公司,
類型:發明
國別省市:山東;37
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。