本發(fā)明涉及互聯(lián)網(wǎng)技術領域,更具體的說,本發(fā)明涉及一種網(wǎng)頁正文抽取方法及裝置。
背景技術:
目前,網(wǎng)頁正文抽取一般采用基于模板的正文抽取方式,而現(xiàn)有正文抽取模板的生成則是從大量結構相似的網(wǎng)頁中,尋找大塊內(nèi)容文本位置,統(tǒng)計出最有可能是正文的節(jié)點,即計算文字長度和總長度的比值,統(tǒng)計出該比值最高的節(jié)點作為正文節(jié)點,進而生成正文抽取模板。而在進行網(wǎng)頁正文抽取時,判斷需要抽取的目標網(wǎng)頁的模板類型,然后按照匹配的模板的正文節(jié)點對該目標網(wǎng)頁的正文節(jié)點進行正文抽取,但在正文節(jié)點內(nèi),會出現(xiàn)相關文章或推薦訂閱等雜質節(jié)點的雜質信息,即現(xiàn)有技術的正文抽取模板雖然將正文節(jié)點的信息抽取出來,但卻沒有將正文節(jié)點中雜質節(jié)點的雜質信息過濾掉;
另外,當網(wǎng)頁底部有大段的免責申明等注腳,或正文主要以圖片為主而文字較少時,根據(jù)上述現(xiàn)有技術的正文抽取模板判斷出的正文節(jié)點往往是錯誤的。
技術實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明實施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種網(wǎng)頁正文抽取方法和相應的裝置。
為了解決上述技術問題,本發(fā)明實施例提供的一種網(wǎng)頁正文抽取方法,其包括:
生成包括正文節(jié)點信息和雜質節(jié)點信息的正文抽取模板,其中,不同域名的網(wǎng)頁對應不同的正文抽取模板;
獲取與目標網(wǎng)頁匹配的正文抽取模板;
根據(jù)所述獲取的正文抽取模板中的正文節(jié)點信息獲取所述目標網(wǎng)頁的正文節(jié)點,在所述獲取的正文節(jié)點中剔除所述雜質節(jié)點信息對應的雜質節(jié)點。
其中,生成包括正文節(jié)點信息和雜質節(jié)點信息的正文抽取模板包括:
確定具有同一域名的網(wǎng)頁的正文節(jié)點;
確定所述正文節(jié)點中的雜質節(jié)點;
根據(jù)所述正文節(jié)點和所述雜質節(jié)點生成對應的正文抽取模板。
其中,確定具有同一域名的網(wǎng)頁的正文節(jié)點包括:
獲取具有同一域名的多個樣本網(wǎng)頁;
對該多個樣本網(wǎng)頁的網(wǎng)頁結構進行對比確定所述正文節(jié)點。
其中,對該多個樣本網(wǎng)頁的網(wǎng)頁結構進行對比確定所述正文節(jié)點包括:
從多個樣本網(wǎng)頁任意選擇兩個樣本網(wǎng)頁;
對所述兩個樣本網(wǎng)頁從根節(jié)點遍歷其文檔對象模型樹,當兩個節(jié)點的孩子節(jié)點的數(shù)量或標簽名不同時,停止遍歷并標記當前的兩個節(jié)點;
當所有樣本網(wǎng)頁都兩兩比較之后,確定標記最多的節(jié)點為所述正文節(jié)點。
其中,確定所述正文節(jié)點中的雜質節(jié)點包括:
將正文節(jié)點內(nèi)的節(jié)點進行比較;
根據(jù)比較結果,將相似度高于閾值的節(jié)點作為雜質節(jié)點。
另外,還包括:
對得到的正文信息按照預定過濾規(guī)則進行再次過濾。
另外,根據(jù)本發(fā)明實施例的一種網(wǎng)頁正文抽取裝置,其包括:
生成處理模塊,用于生成包括正文節(jié)點信息和雜質節(jié)點信息的正文抽取模板,其中,不同域名的網(wǎng)頁對應不同的正文抽取模板;
獲取處理模塊,用于獲取與目標網(wǎng)頁匹配的正文抽取模板;
正文抽取處理模塊,用于根據(jù)所述獲取的正文抽取模板中的正文節(jié)點信息獲取所述目標網(wǎng)頁的正文節(jié)點,在所述獲取的正文節(jié)點中剔除所述雜質節(jié)點信息對應的雜質節(jié)點。
其中,生成處理模塊包括:
正文節(jié)點確定子模塊,用于確定具有同一域名的網(wǎng)頁的正文節(jié)點;
雜質節(jié)點確定子模塊,用于確定所述正文節(jié)點中的雜質節(jié)點;
正文抽取模板生成子模塊,用于根據(jù)所述正文節(jié)點和所述雜質節(jié)點生成對應的正文抽取模板。
其中,正文節(jié)點確定子模塊包括:
獲取子模塊,用于獲取具有同一域名的多個樣本網(wǎng)頁;
網(wǎng)頁結構對比確定子模塊,用于對該多個樣本網(wǎng)頁的網(wǎng)頁結構進行對比確定所述正文節(jié)點。
其中,網(wǎng)頁結構對比確定子模塊包括:
選擇子模塊,用于從多個樣本網(wǎng)頁任意選擇兩個樣本網(wǎng)頁;
遍歷子模塊,用于對所述兩個樣本網(wǎng)頁從根節(jié)點遍歷其文檔對象模型樹,當兩個節(jié)點的孩子節(jié)點的數(shù)量或標簽名不同時,停止遍歷并標記當前的兩個節(jié)點;
第一確定子模塊,用于當所有樣本網(wǎng)頁都兩兩比較之后,確定標記最多的節(jié)點為正文節(jié)點。
其中,雜質節(jié)點確定子模塊包括:
比較子模塊,用于將正文節(jié)點內(nèi)的節(jié)點進行比較;
第二確定子模塊,用于根據(jù)比較結果,將相似度高于閾值的節(jié)點作為雜質節(jié)點。。
另外,還包括:
過濾處理模塊,用于對得到的正文信息還按照預定過濾規(guī)則對雜質進行再次過濾。
另外,根據(jù)本發(fā)明實施例的用于網(wǎng)頁正文抽取裝置,其包括有存儲器,以及一個或者一個以上的程序,其中一個或者一個以上程序存儲于存儲器中,且經(jīng)配置以由一個或者一個以上處理器執(zhí)行所述一個或者一個以上程序包含用于進行以下操作的指令:
生成包括正文節(jié)點信息和雜質節(jié)點信息的正文抽取模板,其中,不同域名的網(wǎng)頁對應不同的正文抽取模板;
獲取與目標網(wǎng)頁匹配的正文抽取模板;
根據(jù)所述獲取的正文抽取模板中的正文節(jié)點信息獲取所述目標網(wǎng)頁的正文節(jié)點,在所述獲取的正文節(jié)點中剔除所述雜質節(jié)點信息對應的雜質節(jié)點。
另外,還包括經(jīng)配置以由一個或者一個以上處理器執(zhí)行所述一個或者一個以上程序包含用于進行以下操作的指令:
確定具有同一域名的網(wǎng)頁的正文節(jié)點;
確定所述正文節(jié)點中的雜質節(jié)點;
根據(jù)所述正文節(jié)點和所述雜質節(jié)點生成對應的正文抽取模板。
另外,還包括經(jīng)配置以由一個或者一個以上處理器執(zhí)行所述一個或者一個以上程序包含用于進行以下操作的指令::
獲取具有同一域名的多個樣本網(wǎng)頁;
對該多個樣本網(wǎng)頁的網(wǎng)頁結構進行對比確定所述正文節(jié)點。
另外,還包括經(jīng)配置以由一個或者一個以上處理器執(zhí)行所述一個或者一個以上程序包含用于進行以下操作的指令:
從多個樣本網(wǎng)頁任意選擇兩個樣本網(wǎng)頁;
對所述兩個樣本網(wǎng)頁從根節(jié)點遍歷其文檔對象模型樹,當兩個節(jié)點的孩子節(jié)點的數(shù)量或標簽名不同時,停止遍歷并標記當前的兩個節(jié)點;
當所有樣本網(wǎng)頁都兩兩比較之后,確定標記最多的節(jié)點為所述正文節(jié)點。
另外,還包括經(jīng)配置以由一個或者一個以上處理器執(zhí)行所述一個或者一個以上程序包含用于進行以下操作的指令:
對得到的正文信息按照預定過濾規(guī)則進行再次過濾。
根據(jù)本發(fā)明實施例提供的網(wǎng)頁正文抽取方法及裝置,通過生成包括正文節(jié)點信息和雜質節(jié)點信息的正文抽取模板,其中,不同域名的網(wǎng)頁對應不同的正文抽取模板;獲取與目標網(wǎng)頁匹配的正文抽取模板;根據(jù)所述獲取的正文抽取模板中的正文節(jié)點信息獲取所述目標網(wǎng)頁的正文節(jié)點,在所述獲取的正文節(jié)點中剔除所述雜質節(jié)點信息對應的雜質節(jié)點。由于正文抽取模板中包括有正文節(jié)點信息和雜質節(jié)點信息,在抽取正文信息時可根據(jù)雜質節(jié)點信息剔除雜質節(jié)點,因此,可得到正確率較高的網(wǎng)頁正文信息。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實施例,對于本領域普通技術人員 來講,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是根據(jù)本發(fā)明網(wǎng)頁正文抽取方法的第一具體實施例流程圖;
圖2是圖1中生成包括正文節(jié)點信息和雜質節(jié)點信息的正文抽取模板的一個具體實施例流程圖;
圖3是根據(jù)本發(fā)明網(wǎng)頁正文抽取方法的第二具體實施例流程圖;
圖4是根據(jù)本發(fā)明網(wǎng)頁正文抽取方法的第三具體實施例流程圖;
圖5是本發(fā)明具體實施例的一個網(wǎng)頁頁面示意圖;
圖6是圖5所示網(wǎng)頁頁面底部的二維碼圖片示意圖;
圖7是根據(jù)本發(fā)明網(wǎng)頁正文抽取方法對圖5所示頁面進行正文抽取后得到的網(wǎng)頁頁面示意圖;
圖8是根據(jù)本發(fā)明的網(wǎng)頁正文抽取裝置的第一具體實施例整體組成示意圖;
圖9是圖8中生成處理模塊的一個具體實施例組成示意圖;
圖10是圖9中正文節(jié)點確定子模塊的一個具體實施例組成示意圖;
圖11是圖10中網(wǎng)頁結構對比確定子模塊的一個具體實施例組成示意圖;
圖12是圖9中雜質節(jié)點確定子模塊的一個具體實施例組成示意圖;
圖13是根據(jù)本發(fā)明網(wǎng)頁正文抽取裝置的第二具體實施例整體示意圖;
圖14是根據(jù)本發(fā)明網(wǎng)頁正文抽取裝置的第三具體實施例整體示意圖;
圖15是根據(jù)本發(fā)明用于網(wǎng)頁正文抽取的裝置的具體實施例結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參閱圖1,其為根據(jù)本發(fā)明網(wǎng)頁正文抽取方法的第一具體實施例流程圖。在本實施例中,實現(xiàn)網(wǎng)頁正文抽取主要包括如下步驟:
步驟S1,生成包括正文節(jié)點信息和雜質節(jié)點信息的正文抽取模板,其中,不同域名的網(wǎng)頁對應不同的正文抽取模板;
部分網(wǎng)頁的正文節(jié)點之內(nèi),還會有部分與正文無關的子節(jié)點,如果不把這些作為雜質的子節(jié)點(下述統(tǒng)一稱為雜質節(jié)點)去掉,會直接影響到用戶 的閱讀體驗。而對于相同站點的網(wǎng)頁或者說具有相同域名的網(wǎng)頁,可以認為這些雜質節(jié)點的內(nèi)容是相同的,比如相同的文字內(nèi)容,相同的圖片路徑等,通過對節(jié)點內(nèi)容的對比,可以篩選出這樣的雜質節(jié)點,同時大部分雜質節(jié)點都有特定的結構,這樣就能根據(jù)特定的規(guī)則將這部分雜質節(jié)點篩選過濾掉,因此,本實施例生成的正文抽取模板中不但包括正文節(jié)點信息也包括雜質節(jié)點信息。
步驟S2,獲取與目標網(wǎng)頁匹配的正文抽取模板;具體實現(xiàn)時,例如可根據(jù)目標網(wǎng)頁的URL,查詢模板庫獲取與該目標網(wǎng)頁匹配的正文抽取模板。
步驟S3,根據(jù)所述獲取的正文抽取模板中的正文節(jié)點信息獲取所述目標網(wǎng)頁的正文節(jié)點,在所述獲取的正文節(jié)點中剔除所述雜質節(jié)點信息對應的雜質節(jié)點。
具體實現(xiàn)時,獲取的正文抽取模板中包括有正文節(jié)點信息和雜質節(jié)點信息,本步驟根據(jù)正文抽取模板中的正文節(jié)點信息在待抽取的目標網(wǎng)頁中找出正文節(jié)點,再進一步根據(jù)正文抽取模板中的雜質節(jié)點信息找出正文節(jié)點中包含的雜質節(jié)點,然后將正文節(jié)點中的雜質節(jié)點剔除后即可得到正文信息。
實際中,作為一個可選實施例,結合圖2,本實施例中對于步驟S1生成包括正文節(jié)點信息和雜質節(jié)點信息的正文抽取模板的方式有多種,例如,可采用如下方式,即:
步驟S11,確定具有同一域名的網(wǎng)頁的正文節(jié)點;
具有同一域名的網(wǎng)頁其網(wǎng)頁結構實際上是相似的,因此,本實施例中具體實現(xiàn)時,可通過網(wǎng)頁結構確定正文節(jié)點,即首先獲取具有同一域名的多個樣本網(wǎng)頁;然后對該多個樣本網(wǎng)頁的網(wǎng)頁結構進行對比確定所述正文節(jié)點;
以一個具體例子來說,對該多個樣本網(wǎng)頁的網(wǎng)頁結構進行對比確定該具有同一域名網(wǎng)頁的正文節(jié)點例如可采用如下方式,即,從多個樣本網(wǎng)頁任意選擇兩個樣本網(wǎng)頁;對所述兩個樣本網(wǎng)頁從根節(jié)點遍歷其文檔對象模型樹,當兩個節(jié)點的孩子節(jié)點的數(shù)量或標簽名不同時,停止遍歷并標記當前的兩個節(jié)點;當所有樣本網(wǎng)頁都兩兩比較之后,確定標記最多的節(jié)點為所述正文節(jié)點。
本實施例中通過對具有同一域名網(wǎng)頁的任意兩個樣本網(wǎng)頁的文檔對象模型樹結構的對比,可以準確找到正文節(jié)點,避免了使用文字長度找正文節(jié)點 出現(xiàn)的偏差。
需要說明的,本實施例中采用的是對比具有同一域名的兩個網(wǎng)頁的網(wǎng)頁結構確定正文節(jié)點,實際中為了使確定的正文節(jié)點的正確率更好,也可以將大量相似的具有同一域名的網(wǎng)頁進行比較,這里不對進行比較的具體網(wǎng)頁數(shù)量進行限定。
步驟S12,確定所述正文節(jié)點中的雜質節(jié)點;
具體實現(xiàn)時,本實施例中確定所述正文節(jié)點中的雜質節(jié)點可采用如下方式,即將正文節(jié)點內(nèi)的節(jié)點進行比較;根據(jù)比較結果,將相似度高于閾值的節(jié)點作為雜質節(jié)點,實際中,具體統(tǒng)計節(jié)點相似度時可采用多種方式,例如一種可行的方式是對正文節(jié)點內(nèi)的節(jié)點進行相似度排序;將相似度高于閾值的節(jié)點作為雜質節(jié)點。
步驟S13,根據(jù)所述正文節(jié)點和所述雜質節(jié)點生成對應的正文抽取模板;
具體實現(xiàn)時,本實施例的具有同一域名的網(wǎng)頁的正文抽取模板中可以該具有同一域名網(wǎng)頁的統(tǒng)一資源定位符正則表達式作為該模板的標識符,而該具有同一域名的網(wǎng)頁的正文抽取模板中的正文節(jié)點和雜質節(jié)點可以該正文節(jié)點和雜質節(jié)點的標簽名和標簽屬性作為標識符,實際中也可以采用其他類型的標識符,這里不做具體限定。
需要說明的,正文抽取模板可以是自動學習和生成的,即可以不斷生成新的正文抽取模板,例如步驟S2中,若沒有獲取到與目標網(wǎng)頁匹配的正文抽取模板,則后續(xù)可自動學習生成該未匹配的目標網(wǎng)頁對應的正文抽取模板。
另外,本實施例中雜質節(jié)點是可自動進行識別和判斷的,但即使按照雜質節(jié)點剔除雜質信息后得到正文信息中還是有可能有一些沒有清除的雜質,例如,正文中的文字內(nèi)容較短且包含“關注XX號”等文字的節(jié)點,或者根據(jù)需要去除視頻節(jié)點等,因此,還可以進一步按照一定的過濾規(guī)則進行雜質的過濾,結合圖3,該圖是根據(jù)本發(fā)明網(wǎng)頁正文抽取方法的第二具體實施例流程圖,本實施例與上述第一實施例不同的是在步驟S3之后還包括步驟S4,即:對得到的正文信息還按照預定過濾規(guī)則進行再次過濾,具體實現(xiàn)時,預定過濾規(guī)則可根據(jù)實際情況進行設定,這里不做具體限定。
另外,參考圖4,該圖是根據(jù)本發(fā)明網(wǎng)頁正文抽取方法的第三具體實施 例流程圖,本實施例主要如下步驟:
步驟S21,確定具有同一域名的網(wǎng)頁的正文節(jié)點,具體包括:獲取具有同一域名的網(wǎng)頁的多個樣本網(wǎng)頁;對該多個樣本網(wǎng)頁的網(wǎng)頁結構進行對比確定該具有同一域名的網(wǎng)頁的正文節(jié)點;
具有同一域名的網(wǎng)頁其網(wǎng)頁結構實際上是相似的,因此,本實施例可通過網(wǎng)頁結構確定具有同一域名的網(wǎng)頁的正文節(jié)點,以一個具體例子來說,對多個樣本網(wǎng)頁的網(wǎng)頁結構進行對比可確定該具有同一域名網(wǎng)頁的正文節(jié)點,例如可采用如下方式:從多個樣本網(wǎng)頁任意選擇兩個樣本網(wǎng)頁;對所述兩個樣本網(wǎng)頁從根節(jié)點遍歷其文檔對象模型樹,當兩個節(jié)點的孩子節(jié)點的數(shù)量或標簽名不同時,停止遍歷并標記當前的兩個節(jié)點;當所有樣本網(wǎng)頁都兩兩比較之后,確定標記最多的節(jié)點為正文節(jié)點。
需要說明的,本實施例中采用的是對比兩個具有同一域名的網(wǎng)頁的網(wǎng)頁結構確定正文節(jié)點,實際中為了使確定的正文節(jié)點的正確率更好,也可以將大量相似的具有同一域名的網(wǎng)頁進行比較,這里不對進行比較的具體網(wǎng)頁數(shù)量進行限定。
步驟S22,根據(jù)所述確定的正文節(jié)點生成對應的正文抽取模板,即生成該具有同一域名的網(wǎng)頁對應的包括正文節(jié)點信息的正文抽取模板,不同域名的網(wǎng)頁對應不同的正文抽取模板,具體實現(xiàn)時,為了便于識別和匹配,本實施例的具有同一域名的網(wǎng)頁的正文抽取模板中可以該具有同一域名網(wǎng)頁的統(tǒng)一資源定位符正則表達式作為該模板的標識符,而該具有同一域名網(wǎng)頁的正文抽取模板中的正文節(jié)點信息可以該正文節(jié)點的標簽名和標簽屬性作為標識符,實際中也可以采用其他類型的標識符,這里不做具體限定。
步驟S23,獲取與目標網(wǎng)頁匹配的正文抽取模板;具體實現(xiàn)時,例如可根據(jù)目標網(wǎng)頁的URL,查詢模板庫獲取與該目標網(wǎng)頁匹配的正文抽取模板,實際中也可以采用其他的匹配方式,這里不做具體限定。
步驟S24,根據(jù)所述獲取的正文抽取模板中的正文節(jié)點信息獲取所述目標網(wǎng)頁的正文節(jié)點得到正文信息。
具體實現(xiàn)時,獲取的正文抽取模板中包括有正文節(jié)點信息,本步驟根據(jù)正文抽取模板中的正文節(jié)點信息在待抽取的目標網(wǎng)頁中找出相應正文節(jié)點即可得到正文信息。
需要說明的,上述步驟S24獲得正文信息可能全部為所需的正文信息,也可能包括不需要的雜質內(nèi)容,因此,實際中也可以進一步過濾雜質,這里不做具體限定。
下面對第二具體實施例進行舉例說明。
本實施例中以某某財經(jīng)的網(wǎng)頁為例,其三個網(wǎng)頁的網(wǎng)址如下:
http://finance.XXX.com.cn/stock/gujiayidong/20150803/131322861376.shtml
http://finance.XXX.com.cn/stock/gujiayidong/20150803/101322860071.shtml
http://finance.XXX.com.cn/stock/jsy/20150803/140922861666.shtml
上述三個網(wǎng)頁的域名都是同一個,即:finance.XXX.com.cn,即上述三個網(wǎng)頁屬于具有同一域名的網(wǎng)頁。如圖所示,對這些網(wǎng)頁按照正文節(jié)點進行正文抽取后,如圖5所示,可以看到這些網(wǎng)頁的正文中還有部分雜質信息,例如,圖片下方的鏈接文字、左下角的內(nèi)嵌廣告圖片以及最后的“進入綠盟科技吧討論”等為雜質節(jié)點的雜質信息內(nèi)容,另外,參考圖6,同時在網(wǎng)頁底部還有二維碼圖片,本實施例中首先可生成該具有同一域名的網(wǎng)頁的正文抽取模板,即首先根據(jù)三個具有同一域名的網(wǎng)頁源碼的文檔對象模型樹(即dom樹)的對比確定正文節(jié)點,例如可識別<div class=″article article_16″id=″artibody″>節(jié)點內(nèi)的結構有所差異,進而確定該節(jié)點為正文節(jié)點,然后,對正文節(jié)點內(nèi)的內(nèi)容進行對比,可以發(fā)現(xiàn)二維碼圖片、廣告圖片以及最后“進入綠盟科技吧討論”的節(jié)點內(nèi)容非常相似,可以判斷這些內(nèi)容的節(jié)點為雜質節(jié)點,進而可根據(jù)判斷出的正文節(jié)點信息和雜質節(jié)點信息生成該某某財經(jīng)類型網(wǎng)頁的正文抽取模板。
而在正文抽取階段,可首先根據(jù)該某某財經(jīng)類型網(wǎng)頁的正文抽取模板找出正文節(jié)點,進而在正文節(jié)點中過濾正文抽取模板中的雜質節(jié)點內(nèi)容,即把二維碼圖片、廣告圖片以及最后“進入綠盟科技吧討論”的雜質節(jié)點過濾掉,最后還可以根據(jù)特定的過濾規(guī)則進行雜質信息的再次過濾,如圖片下方鏈接文字的節(jié)點(例如,圖5中的“消息股匯總:7月31日盤前提示蒙發(fā)利強勢漲?!钡热齻€鏈接文字的節(jié)點)滿足連續(xù)出現(xiàn)鏈接文字等過濾規(guī)則,可將該節(jié)點的信息過濾掉得到最終的正文信息,即圖7所示內(nèi)容。
下面說明本發(fā)明的另一方面。
參考圖8,該圖為根據(jù)本發(fā)明的網(wǎng)頁正文抽取裝置的第一具體實施例整體示意圖,本實施例的網(wǎng)頁正文抽取裝置主要包括:
生成處理模塊1,用于生成包括正文節(jié)點信息和雜質節(jié)點信息的正文抽取模板,其中,不同域名的網(wǎng)頁對應不同的正文抽取模板;
本實施例的生成處理模塊1生成的正文抽取模板中不但包括正文節(jié)點信息也包括雜質節(jié)點信息,另外,本實施例的具有同一域名的網(wǎng)頁的正文抽取模板中可以以該類網(wǎng)頁的統(tǒng)一資源定位符正則表達式作為該模板的標識符,而該類網(wǎng)頁的正文抽取模板中的正文節(jié)點和雜質節(jié)點可以該正文節(jié)點和雜質節(jié)點的標簽名和標簽屬性作為標識符,實際中也可以采用其他類型的標識符,這里不做具體限定。
獲取處理模塊2,用于獲取與目標網(wǎng)頁匹配的正文抽取模板,本實施例中獲取處理模塊2例如可根據(jù)目標網(wǎng)頁的URL,查詢模板庫獲取與該目標網(wǎng)頁匹配的正文抽取模板,這里不做具體限定;
正文抽取處理模塊3,用于根據(jù)所述獲取的正文抽取模板中的正文節(jié)點信息獲取所述目標網(wǎng)頁的正文節(jié)點,在所述獲取的正文節(jié)點中剔除所述雜質節(jié)點信息對應的雜質節(jié)點。
具體實現(xiàn)時,本實施例的正文抽取處理模塊3可根據(jù)正文抽取模板中的正文節(jié)點信息在待抽取的目標網(wǎng)頁中找出正文節(jié)點,再進一步根據(jù)正文抽取模板中的雜質節(jié)點信息找出正文節(jié)點中包含的雜質節(jié)點,然后將正文節(jié)點中的雜質節(jié)點剔除后即可得到正文信息。
實際中,作為一個可選實施例,參考圖9,上述圖8中的生成處理模塊1可包括:正文節(jié)點確定子模塊11、雜質節(jié)點確定子模塊12和正文抽取模板生成子模塊13,其中
正文節(jié)點確定子模塊11,用于確定具有同一域名的網(wǎng)頁的正文節(jié)點;
本實施例中具有同一域名的網(wǎng)頁其網(wǎng)頁結構實際上是相似的,因此,具體實現(xiàn)時,可通過網(wǎng)頁結構確定正文節(jié)點,作為一個可選的實施例,結合圖10,正文節(jié)點確定子模塊11可包括:
獲取子模塊111,用于獲取具有同一域名的多個樣本網(wǎng)頁;
網(wǎng)頁結構對比確定子模塊112,用于對該多個樣本網(wǎng)頁的網(wǎng)頁結構進行對比確定所述正文節(jié)點,例如,結合圖11,網(wǎng)頁結構對比確定子模塊112可包括:
選擇子模塊1121,用于從多個樣本網(wǎng)頁任意選擇兩個樣本網(wǎng)頁;
遍歷子模塊1122,用于對所述兩個樣本網(wǎng)頁從根節(jié)點遍歷其文檔對象模型樹,當兩個節(jié)點的孩子節(jié)點的數(shù)量或標簽名不同時,停止遍歷并標記當前的兩個節(jié)點;
第一確定子模塊1123,用于當所有樣本網(wǎng)頁都兩兩比較之后,確定標記最多的節(jié)點為正文節(jié)點。
本實施例中通過對具有同一域名的網(wǎng)頁的任意兩個樣本網(wǎng)頁的文檔對象模型樹結構的對比,可以準確找到正文節(jié)點,避免了使用文字長度找正文節(jié)點出現(xiàn)的偏差。
需要說明的,本實施例中采用對比具有同一域名的兩個網(wǎng)頁的網(wǎng)頁結構確定正文節(jié)點,實際中為了使確定的正文節(jié)點的正確率更好,也可以將大量相似的具有同一域名的網(wǎng)頁進行比較,這里不對進行比較的具體網(wǎng)頁數(shù)量進行限定。
另外,雜質節(jié)點確定子模塊12主要用于確定所述正文節(jié)點中的雜質節(jié)點;具體實現(xiàn)時,作為一個具體實施例,結合圖12,雜質節(jié)點確定子模塊12可包括:
比較子模塊121,用于將正文節(jié)點內(nèi)的節(jié)點進行比較;
第二確定子模塊122,用于根據(jù)比較結果,將相似度高于閾值的節(jié)點作為雜質節(jié)點。
另外,正文抽取模板生成子模塊13主要用于按照上述確定的正文節(jié)點和所述雜質節(jié)點生成對應的正文抽取模板,這里不再贅述。
需要說明的,正文抽取模板可以是自動學習和生成的,即若獲取處理模塊沒有獲取到與目標網(wǎng)頁匹配的與正文抽取模板,則后續(xù)可自動學習生成該未匹配的目標網(wǎng)頁對應的正文抽取模板。
另外,本實施例中雜質節(jié)點是自動進行識別和判斷的,因此,即使按照雜質節(jié)點剔除雜質信息后得到正文信息中還是有可能有一些沒有清除的雜質,結合圖13,該圖是根據(jù)本發(fā)明網(wǎng)頁正文抽取裝置的第二具體實施例的整體示意圖,本實施例與上述第一實施例不同的是本實施例中還包括:過濾處理模塊4,本實施例中過濾處理模塊4主要用于對得到的正文信息還按照預 定過濾規(guī)則進行再次過濾,具體實現(xiàn)時,預定過濾規(guī)則可根據(jù)實際情況進行設定,這里不做具體限定。
參考圖14,該圖是根據(jù)本發(fā)明的網(wǎng)頁正文抽取裝置的第三具體實施例整體示意圖,本實施例的網(wǎng)頁正文抽取裝置主要包括:
正文節(jié)點確定處理模塊M1,用于確定具有同一域名的網(wǎng)頁的正文節(jié)點,具體包括:獲取具有同一域名網(wǎng)頁的多個樣本網(wǎng)頁;對該多個樣本網(wǎng)頁的網(wǎng)頁結構進行對比確定該具有同一域名網(wǎng)頁的正文節(jié)點;
具有同一域名的網(wǎng)頁其網(wǎng)頁結構實際上是相似的,因此,可通過網(wǎng)頁結構確定具有同一域名網(wǎng)頁的正文節(jié)點,以一個具體例子來說,對多個樣本網(wǎng)頁的網(wǎng)頁結構進行對比可確定該具有同一域名的網(wǎng)頁的正文節(jié)點,例如可采用如下方式:從多個樣本網(wǎng)頁任意選擇兩個樣本網(wǎng)頁;對所述兩個樣本網(wǎng)頁從根節(jié)點遍歷其文檔對象模型樹,當兩個節(jié)點的孩子節(jié)點的數(shù)量或標簽名不同時,停止遍歷并標記當前的兩個節(jié)點;當所有樣本網(wǎng)頁都兩兩比較之后,確定標記最多的節(jié)點為正文節(jié)點。
需要說明的,本實施例中采用對比兩個具有同一域名的網(wǎng)頁的網(wǎng)頁結構確定正文節(jié)點,實際中為了使確定的正文節(jié)點的正確率更好,也可以將大量相似的具有同一域名的網(wǎng)頁進行比較,這里不對進行比較的具體網(wǎng)頁數(shù)量進行限定。
正文抽取模板生成處理模塊M2,主要用于根據(jù)所述確定的正文節(jié)點生成對應的正文抽取模板,即生成該具有同一域名的網(wǎng)頁對應的包括正文節(jié)點信息的正文抽取模板,不同域名的網(wǎng)頁對應不同的正文抽取模板,具體實現(xiàn)時,為了便于識別和匹配,本實施例的具有同一域名的網(wǎng)頁的正文抽取模板中可以該具有同一域名的網(wǎng)頁的統(tǒng)一資源定位符正則表達式作為該模板的標識符,而該具有同一域名的網(wǎng)頁的正文抽取模板中的正文節(jié)點信息可以該正文節(jié)點的標簽名和標簽屬性作為標識符,實際中也可以采用其他類型的標識符,這里不做具體限定。
正文抽取模板獲取處理模塊M3,主要用于獲取與目標網(wǎng)頁匹配的正文抽取模板;具體實現(xiàn)時,例如可根據(jù)目標網(wǎng)頁的URL,查詢模板庫獲取與該目標網(wǎng)頁匹配的正文抽取模板,實際中也可以采用其他的匹配方式,這里不做具體限定。
正文抽取處理模塊M4,主要用于根據(jù)所述獲取的正文抽取模板中的正文節(jié)點信息獲取所述目標網(wǎng)頁的正文節(jié)點得到正文信息。
具體實現(xiàn)時,獲取的正文抽取模板中包括有正文節(jié)點信息,本步驟根據(jù)正文抽取模板中的正文節(jié)點信息在待抽取的目標網(wǎng)頁中找出相應正文節(jié)點即可得到正文信息。
需要說明的,上述正文抽取處理模塊M4得到的正文信息可能全部為所需的正文信息,也可能包括不需要的雜質內(nèi)容,因此,實際中也可以進一步過濾雜質,這里不做具體限定。
參考圖15,該圖是根據(jù)本發(fā)明用于網(wǎng)頁正文抽取的裝置800的一個具體實施例結構示意圖,本實施例中,裝置800可以是計算機或者其他實現(xiàn)計算機功能或實現(xiàn)智能設備功能等可處理應用程序的設備。
如圖15所示,裝置800可以包括以下一個或多個組件:處理組件801,存儲器802等,為實現(xiàn)其他功能,裝置800也可能包括其他功能組件,這里不做具體限定。
處理組件801通??刂蒲b置800的整體操作,諸如與網(wǎng)頁獲取,正文抽取,存儲等相關聯(lián)的操作。處理組件801可以包括一個或多個處理器820來執(zhí)行指令,以完成上述的方法的全部或部分步驟,例如,經(jīng)配置以由一個或者一個以上處理器820執(zhí)行所述一個或者一個以上程序包含用于進行以下操作的指令:
生成包括正文節(jié)點信息和雜質節(jié)點信息的正文抽取模板,其中,不同域名的網(wǎng)頁對應不同的正文抽取模板;
獲取與目標網(wǎng)頁匹配的正文抽取模板;
根據(jù)所述獲取的正文抽取模板中的正文節(jié)點信息獲取所述目標網(wǎng)頁的正文節(jié)點,在所述獲取的正文節(jié)點中剔除所述雜質節(jié)點信息對應的雜質節(jié)點。
或者,例如,經(jīng)配置以由一個或者一個以上處理器執(zhí)行所述一個或者一個以上程序包含用于進行以下操作的指令:
確定具有同一域名的網(wǎng)頁的正文節(jié)點;
確定所述正文節(jié)點中的雜質節(jié)點;
根據(jù)所述正文節(jié)點和所述雜質節(jié)點生成對應的正文抽取模板。
或者,經(jīng)配置以由一個或者一個以上處理器執(zhí)行所述一個或者一個以上 程序包含用于進行以下操作的指令::
獲取具有同一域名的多個樣本網(wǎng)頁;
對該多個樣本網(wǎng)頁的網(wǎng)頁結構進行對比確定所述正文節(jié)點。
或者,經(jīng)配置以由一個或者一個以上處理器執(zhí)行所述一個或者一個以上程序包含用于進行以下操作的指令:
從多個樣本網(wǎng)頁任意選擇兩個樣本網(wǎng)頁;
對所述兩個樣本網(wǎng)頁從根節(jié)點遍歷其文檔對象模型樹,當兩個節(jié)點的孩子節(jié)點的數(shù)量或標簽名不同時,停止遍歷并標記當前的兩個節(jié)點;
當所有樣本網(wǎng)頁都兩兩比較之后,確定標記最多的節(jié)點為所述正文節(jié)點。
以及,經(jīng)配置以由一個或者一個以上處理器執(zhí)行所述一個或者一個以上程序包含用于進行以下操作的指令:
對得到的正文信息按照預定過濾規(guī)則進行再次過濾。
需要說明的,實際中還可以配置其他處理器執(zhí)行的指令,這里不做具體限定。
此外,本實施例中處理組件801可以包括一個或多個模塊,便于處理組件801和其他組件之間的交互。
存儲器802被配置為存儲各種類型的數(shù)據(jù)以支持在設備800的操作。這些數(shù)據(jù)的示例包括用于在裝置800上操作的任何應用程序或方法的指令,其他例如正文節(jié)點信息和雜質節(jié)點信息,正文抽取模板、網(wǎng)頁數(shù)據(jù)以及其他數(shù)據(jù)等。存儲器802可以由任何類型的易失性或非易失性存儲設備或者它們的組合實現(xiàn),如靜態(tài)隨機存取存儲器(SRAM),電可擦除可編程只讀存儲器(EEPROM),可擦除可編程只讀存儲器(EPROM),可編程只讀存儲器(PROM),只讀存儲器(ROM),磁存儲器,快閃存儲器,磁盤或光盤。
在示例性實施例中,裝置800可以被一個或多個應用專用集成電路(ASIC)、數(shù)字信號處理器(DSP)、數(shù)字信號處理設備(DSPD)、可編程邏輯器件(PLD)、現(xiàn)場可編程門陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件實現(xiàn),用于執(zhí)行上述方法。
在示例性實施例中,還提供了一種包括指令的非臨時性計算機可讀存儲介質,例如包括指令的存儲器802,上述指令可由裝置800的處理器820執(zhí)行以完成上述方法。例如,所述非臨時性計算機可讀存儲介質可以是ROM、隨機存取存儲器(RAM)、CD-ROM、磁帶、軟盤和光數(shù)據(jù)存儲設備等。
一種非臨時性計算機可讀存儲介質,當所述存儲介質中的指令由計算機的處理器執(zhí)行時,使得計算機能夠執(zhí)行一種用于網(wǎng)頁正文抽取的方法,所述方法包括:生成包括正文節(jié)點信息和雜質節(jié)點信息的正文抽取模板,其中,不同域名的網(wǎng)頁對應不同的正文抽取模板;獲取與目標網(wǎng)頁匹配的正文抽取模板;根據(jù)所述獲取的正文抽取模板中的正文節(jié)點信息獲取所述目標網(wǎng)頁的正文節(jié)點,在所述獲取的正文節(jié)點中剔除所述雜質節(jié)點信息對應的雜質節(jié)點。
本領域技術人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實施方案。本發(fā)明旨在涵蓋本發(fā)明的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本發(fā)明的一般性原理并包括本公開未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權利要求指出。
應當理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結構,并且可以在不脫離其范圍進行各種修改和改變。本發(fā)明的范圍僅由所附的權利要求來限制
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。