一種提取網(wǎng)頁正文內(nèi)容的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機應(yīng)用和信息抽取領(lǐng)域,特別是一種提取網(wǎng)頁正文內(nèi)容的方法及系統(tǒng)。
【背景技術(shù)】
[0002]名詞解釋:
HTML:Hyper Text Markup Language,超文本標記語言;
PHP:Hypertext Preprocessor,超文本預(yù)處理語言;
SSI:Server Side Include,服務(wù)器端嵌入;
SHTML:使用SSI的HTML文件擴展名;
JS腳本:全稱為javascript,是一種由Netscape的LiveScript發(fā)展而來的腳本語言,主要目的是為了解決服務(wù)器終端語言遺留的速度問題;
CSS樣式:層疊樣式表,一種用來表現(xiàn)HTML (標準通用標記語言的一個應(yīng)用)或XML (標準通用標記語言的一個子集)等文件樣式的計算機語言;
meta標簽:在網(wǎng)頁的HTML源代碼中,位于頭部,用來描述一個HTML網(wǎng)頁文檔的屬性,例如作者、日期、關(guān)鍵詞、網(wǎng)頁描述等。
[0003]UL/L1:UL、LI是使用CSS布局頁面時常用的元素。
[0004]隨著互聯(lián)網(wǎng)及其技術(shù)的迅猛發(fā)展,網(wǎng)絡(luò)上的信息呈爆炸式增長。網(wǎng)絡(luò)已經(jīng)成為人類有史以來最為龐大的數(shù)據(jù)庫,而網(wǎng)頁已經(jīng)成為Internet上最重要的信息資源。很多基于互聯(lián)網(wǎng)的信息處理工作例如信息搜索、數(shù)據(jù)挖掘、機器翻譯等,是以純文本格式的信息內(nèi)容為基礎(chǔ)數(shù)據(jù)開展的而一般做輿情分析、文本挖掘,都會涉及到網(wǎng)頁正文內(nèi)容提取。對于分析、挖掘而言,有價值的信息是正文部分,大多數(shù)情況下,為了便于分析,需要將網(wǎng)頁中和正文不相關(guān)的部分剔除。但是,在目前的互聯(lián)網(wǎng)環(huán)境下,HTML是當前WEB上數(shù)據(jù)存在的主要格式,而HTML著重于數(shù)據(jù)的表現(xiàn),HTML標簽不帶有語義,缺乏對數(shù)據(jù)的描述。將一個HTML形式的信息轉(zhuǎn)換成有利用價值的文本格式信息,方便后續(xù)的信息處理,是極為關(guān)鍵的技術(shù)問題。一個web網(wǎng)頁中的內(nèi)容除了包括與主題有關(guān)的正文信息以外,還存在一些與主題無關(guān)的導(dǎo)航鏈接、廣告鏈接和版權(quán)聲明等噪音信息,這些噪音增加了正文內(nèi)容的自動抽取難度。
[0005]目前,關(guān)于網(wǎng)頁正文提取從大方向上主要可分為基于包裝器的方法、網(wǎng)頁視覺特征分塊的方法兩類。一、基于包裝器的方法:利用包裝器提取網(wǎng)頁正文是一種提出較早,也較為流行的方法,例如網(wǎng)頁模板抽取方法。它的原理是通過構(gòu)建包裝器或網(wǎng)頁模板規(guī)則,將符合規(guī)則的信息從網(wǎng)頁信息源中提取出來。但是該方法只能針對某一類特定格式信息源,而構(gòu)建它所需的信息模式識別知識的獲取是一個費時費力的工作,在目前的互聯(lián)網(wǎng)網(wǎng)頁越來越多樣化和可定制化的趨勢下,使用模板解析網(wǎng)頁正文往往不能適應(yīng)新網(wǎng)頁的正文抽取,需要人工干預(yù),工作量大,代價很高,這種方法不通用。二、網(wǎng)頁視覺特征分塊方法:在視覺上,一個HTML網(wǎng)頁的頁面可以劃分為若干個區(qū)域,同一個區(qū)域內(nèi)包含相近的內(nèi)容,我們把一個區(qū)域稱為一個內(nèi)容塊,然后對內(nèi)容塊進行取舍抽取正文內(nèi)容。這些內(nèi)容塊中,有的包含了正文內(nèi)容,而有的則包含著噪音內(nèi)容,例如廣告等。但是這種方法,由于視覺特征的復(fù)雜性,很難有一個通用的規(guī)則集。除此之外,該算法還需要保存大量的視覺信息,其處理性能隨著頁面的復(fù)雜度急劇下降,面對日益復(fù)雜的頁面,處理效果往往不能令人滿意。
[0006]總的來說,現(xiàn)有的方法要么算法流程過于簡單,只能針對特定標簽的網(wǎng)頁風(fēng)格進行內(nèi)容提取,工作量大,效率不高;要么算法復(fù)雜度過高,對復(fù)雜多變的網(wǎng)頁,處理效果不理雄
V QjN O
【發(fā)明內(nèi)容】
[0007]為了解決上述的技術(shù)問題,本發(fā)明的目的是提供一種提取網(wǎng)頁正文內(nèi)容的方法,本發(fā)明的目的是提供一種提取網(wǎng)頁正文內(nèi)容的系統(tǒng)。
[0008]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
一種提取網(wǎng)頁正文內(nèi)容的方法,包括:
51、加載待分析網(wǎng)頁的HTML源碼,同時加載預(yù)設(shè)對比網(wǎng)頁的HTML源碼;
52、按行比較待分析網(wǎng)頁和預(yù)設(shè)對比網(wǎng)頁的HTML源碼的相同性;
53、根據(jù)相同性對比結(jié)果,判斷待分析網(wǎng)頁是否為列表導(dǎo)航網(wǎng)頁類型,若是,則結(jié)束,反之,執(zhí)行步驟S4 ;
54、對待分析網(wǎng)頁的HTML源碼進行正文內(nèi)容抽取。
[0009]進一步,所述步驟S2,包括:
521、分別去除待分析網(wǎng)頁和預(yù)設(shè)對比網(wǎng)頁的HTML源碼中與正文無關(guān)的信息;
522、依次對比待分析網(wǎng)頁和預(yù)設(shè)對比網(wǎng)頁的HTML源碼的每一行,并標記每行的對比結(jié)果屬性為相同或不同;
523、根據(jù)每行的對比結(jié)果屬性,對待分析網(wǎng)頁的HTML源碼進行遍歷,形成包含對比結(jié)果屬性的數(shù)組。
[0010]進一步,所述步驟S21中所述與正文無關(guān)的信息包括JS腳本、CSS樣式、meta標簽、注釋以及列表型標簽。
[0011]進一步,所述步驟S23,其具體為:
以待分析網(wǎng)頁的HTML源碼的行數(shù)為基準,根據(jù)每行的對比結(jié)果屬性,對待分析網(wǎng)頁的HTML源碼進行遍歷,先遍歷每一個不同行,再遍歷每一個相同行,進而形成包含對比結(jié)果屬性的數(shù)組。
[0012]進一步,所述步驟S3所述根據(jù)相同性對比結(jié)果,判斷待分析網(wǎng)頁是否為列表導(dǎo)航網(wǎng)頁類型的步驟,其具體為:
獲取待分析網(wǎng)頁的HTML源碼的不同行的遍歷內(nèi)容并去除其中的超鏈接標簽后,判斷剩余內(nèi)容中的中文字數(shù)是否大于預(yù)設(shè)的最大中文字數(shù)閾值,若是,則判斷待分析網(wǎng)頁為內(nèi)容類型頁面,反之,判斷待分析網(wǎng)頁為列表導(dǎo)航網(wǎng)頁類型。
[0013]進一步,所述步驟S4,包括:
541、根據(jù)相同性對比結(jié)果,依序分別將待分析網(wǎng)頁的HTML源碼中的連續(xù)不同行生成文本信息塊,獲得文本信息塊數(shù)組;
542、分別對每個文本信息塊進行分析并抽取內(nèi)容信息塊;
543、依序合并內(nèi)容信息塊,并添加段落標記,形成正文內(nèi)容。
[0014]進一步,所述步驟S42,其具體為:
對每個文本信息塊,判斷是否存在某一行的標點符號的數(shù)量大于1,或者含有段落標簽、表格標簽或圖像標簽,且該行與其下一行的標點符號的總數(shù)量大于3、中文總字數(shù)大于10或其下一行含有段落標簽或圖像標簽,則將該行到文本信息塊的尾部的內(nèi)容作為內(nèi)容信息塊。
[0015]本發(fā)明解決其技術(shù)問題所采用的另一技術(shù)方案是:
一種提取網(wǎng)頁正文內(nèi)容的系統(tǒng),包括:
加載模塊,用于加載待分析網(wǎng)頁的HTML源碼,同時加載預(yù)設(shè)對比網(wǎng)頁的HTML源碼; 行對比模塊,用于按行比較待分析網(wǎng)頁和預(yù)設(shè)對比網(wǎng)頁的HTML源碼的相同性;
判斷模塊,用于根據(jù)相同性對比結(jié)果,判斷待分析網(wǎng)頁是否為列表導(dǎo)航網(wǎng)頁類型,若是,則結(jié)束,反之,執(zhí)行抽取模塊;
抽取模塊,用于對待分析網(wǎng)頁的HTML源碼進行正文內(nèi)容抽取。
[0016]進一步,所述行對比模塊,包括:
第一子模塊,用于分別去除待分析網(wǎng)頁和預(yù)設(shè)對比網(wǎng)頁的HTML源碼中與正文無關(guān)的信息;
第二子模塊,用于依次對比待分析網(wǎng)頁和預(yù)設(shè)對比網(wǎng)頁的HTML源碼的每一行,并標記每行的對比結(jié)果屬性為相同或不同;
第三子模塊,用于根據(jù)每行的對比結(jié)果屬性,對待分析網(wǎng)頁的HTML源碼進行遍歷,形成包含對比結(jié)果屬性的數(shù)組。
[0017]進一步,所述抽取模塊,包括:
第四子模塊,用于根據(jù)相同性對比結(jié)果,依序分別將待分析網(wǎng)頁的HTML源碼中的連續(xù)不同行生成文本信息塊,獲得文本信息塊數(shù)組;
第五子模塊,用于分別對每個文本信息塊進行分析并抽取內(nèi)容信息塊;
第六子模塊,用于依序合并內(nèi)容信息塊,并添加段落標記,形成正文內(nèi)容。
[0018]本發(fā)明的有益效果是:本發(fā)明的一種提取網(wǎng)頁正文內(nèi)容的方法,包括:S1、加載待分析網(wǎng)頁的HTML源碼,同時加載預(yù)設(shè)對比網(wǎng)頁的HTML源碼;S2、按行比較待分析網(wǎng)頁和預(yù)設(shè)對比網(wǎng)頁的HTML源碼的相同性