淺談基于DOM樹的信息推廣平臺設(shè)計論文
淺談基于DOM樹的信息推廣平臺設(shè)計論文
XML、DOM 把XML文檔視為一種樹結(jié)構(gòu),這種樹結(jié)構(gòu)被稱為節(jié)點樹。以下是學(xué)習(xí)啦小編今天為大家精心準(zhǔn)備的:淺談基于DOM 樹的信息推廣平臺設(shè)計相關(guān)論文。內(nèi)容僅供參考,歡迎閱讀!
淺談基于DOM 樹的信息推廣平臺設(shè)計全文如下:
1引言
隨著“互聯(lián)網(wǎng)+”時代的到來,信息的來源,可信度,及時度越來越受到人們的關(guān)注,但現(xiàn)在大多數(shù)的信息都是來自Web 網(wǎng)頁,這樣的信息多而雜,具網(wǎng)絡(luò)資料顯示,文本信息正以指數(shù)型式不斷增長。為了節(jié)約時間,就有了基于Web 頁面挖掘技術(shù)的產(chǎn)生。實現(xiàn)信息推送最好的選擇就是微信公眾平臺。微信公眾平臺是最近幾年新出的推送信息的一種新方式,它是騰迅公司在微信的基礎(chǔ)上新增的功能模塊,通過這一平臺,個人和企業(yè)都可以打造一個微信的公眾號,并實現(xiàn)和特定群體的文字、圖片、語音的全方位溝通、互動。
2Web 頁面挖掘
如今Internet 上很多網(wǎng)頁都是動態(tài)生成的,通過用戶填寫表單提交信息,動態(tài)的生成Deep Web 頁面,與此同時用戶提交的大量數(shù)據(jù)信息被保存在網(wǎng)站的后臺數(shù)據(jù)庫中。由于頁面中數(shù)據(jù)記錄之間的代碼具有極高的結(jié)構(gòu)相似性,因此Web 數(shù)據(jù)記錄所對應(yīng)的標(biāo)簽樹之間自然也具有很高的相識性,所以網(wǎng)頁往往具有相似的結(jié)構(gòu)和局部代碼重復(fù)性。因此數(shù)據(jù)的自動化提取則可以分為以下幾個步驟:
(1)輸入一些具有相同或相似結(jié)構(gòu)的Web 頁面。
(2)對這些Web 頁面進(jìn)行預(yù)處理,就是將一些與網(wǎng)頁無關(guān)的內(nèi)容進(jìn)行刪除,將代碼結(jié)構(gòu)不嚴(yán)謹(jǐn)?shù)腍TML 頁面轉(zhuǎn)換成結(jié)構(gòu)嚴(yán)謹(jǐn)、易于處理的HTML 頁面。
(3)將處理好的頁面解析成以標(biāo)簽為隊列的線性數(shù)據(jù)結(jié)構(gòu),接著利用標(biāo)簽隊列的匹配去除頁面中的廣告,導(dǎo)航欄等。
(4)按照一些頁面性質(zhì)將網(wǎng)頁中的標(biāo)簽歸類成為一些小集合,然后對這些小集合的有效數(shù)據(jù)進(jìn)行自動抽取,并自動生成該類的模版頁。
3 DOM 標(biāo)簽樹
HTML 通過定義一套標(biāo)簽來刻畫顯示的頁面。依據(jù)標(biāo)簽的作用可將HTML 的標(biāo)簽分為三類:
(1)規(guī)劃網(wǎng)頁布局的標(biāo)簽。在視覺上,我們都知道網(wǎng)頁是由無數(shù)的方塊嵌套在一起組成,而里面的內(nèi)容則是由標(biāo)簽規(guī)劃出來的。常用的標(biāo)簽有:<div> <p> <td> <tr> <table> </table> </tr> </td> </p> </div>等。
(2)描述顯示特點的標(biāo)簽。在網(wǎng)頁中常看到為了引起我們注意的不同格式文字,它們都是由一些標(biāo)簽規(guī)定的,這類標(biāo)簽稱為信息標(biāo)簽。常用的有<b> <i> <strong> <h1> <h2> </h2> </h1> </strong> </i> </b>等。
(3)超鏈接相關(guān)的標(biāo)簽:超鏈接是網(wǎng)頁區(qū)別于普通文本最明顯的特征之一。它表示著網(wǎng)頁間的關(guān)系,整理出超鏈接標(biāo)簽可以挖掘出網(wǎng)頁間的相關(guān)內(nèi)容。
4 部分功能與實現(xiàn)的步驟
4.1HTML 的預(yù)處理
現(xiàn)在大多數(shù)的網(wǎng)站都是以HTML 文檔形式向客戶展開,每一個頁面中的數(shù)據(jù)和格式都是以一組成對的“始標(biāo)記”與“結(jié)束標(biāo)記”組成。例如:<br> 和</br>,<body>,</body>和,, 等。在頁面中的標(biāo)簽可以相互嵌套使用。為了避免網(wǎng)頁不兼容、代碼錯誤的現(xiàn)象可能導(dǎo)致的頁面解析失敗,我們可以先除去一些無用的標(biāo)簽,如:<from>,<select>,頁面中的style 和注釋等。
可以把預(yù)處理流程歸納為:
(1)獲取THML 頁面。
(2)將HTML 轉(zhuǎn)換成XHTML。
(3)去除標(biāo)簽和無關(guān)腳本。
(4)去除導(dǎo)航欄,廣告等無關(guān)數(shù)據(jù)。去除style 和注釋可以分別用正則表達(dá)式<style (? s) .* ? </style>>(\ r \ n)? 和<! - -(? s) . * ? - ->(\ r \ n)?。去除廣告,導(dǎo)航欄等信息的方法是主要將HTML 頁面解析成標(biāo)簽樹,在根據(jù)標(biāo)簽樹中具有相同名稱和屬性的節(jié)點進(jìn)行分析,判斷該父節(jié)點及其以下的子節(jié)點是否相同,如果相同就從其父節(jié)點處刪除。
4.2HTML 頁面的解析
經(jīng)過HTML 處理以后生成XHTML,使得Web 結(jié)構(gòu)更加規(guī)整化。這樣就更方便的判斷其節(jié)點的類型,如果該節(jié)點是開始標(biāo)簽,那么就判斷它的屬性是否為空,如果不為空,則為開始標(biāo)簽刪除其屬性,直到僅剩下普通文本。再根據(jù)正則表達(dá)式提取我們所需要的信息。如果遇到該節(jié)點的結(jié)束標(biāo)簽,則進(jìn)行下一個開始標(biāo)簽的分析,直至循環(huán)到該頁面提取結(jié)束。
5 Dom 樹與信息推送的聯(lián)系
Web 頁面信息提取的過程也就是頁面擴展DOM 樹的創(chuàng)建過程。簡單來說,DOM 樹就是根據(jù)HTML 頁面中標(biāo)簽的含義創(chuàng)建出來的具有層次關(guān)系的樹狀結(jié)構(gòu),樹中的每一個節(jié)點都是對應(yīng)于HTML 的標(biāo)簽,我們通過存取這些標(biāo)簽就能操作文檔中的內(nèi)容。
程序通過操作DOM 樹,將眾多頁面中的客戶需要知道的消息提取出來存入數(shù)據(jù)庫,當(dāng)用戶在消息推送的微信公眾號上查詢想知道的信息時,消息就會從數(shù)據(jù)庫中讀出來展現(xiàn)在微信平臺上。
6 結(jié)語
選用DOM 樹結(jié)構(gòu)為Web 頁面信息采集的核心技術(shù),是因為DOM 易用性強,使用時,它可以將XML 文檔信息都存于內(nèi)存中,并且遍歷簡單,支持XPath,增強了通用性,對于開發(fā)軟件較為容易。