一種提取html頁面選定區(qū)域內(nèi)容的方法
【專利摘要】一種提取html頁面中選定區(qū)域內(nèi)容的方法。該方法的特征在于,在步驟1中,將html源碼轉(zhuǎn)換為元素列表;在步驟2中,針對html源碼制定一個分析模板,將該模板轉(zhuǎn)換為元素列表;步驟3中,用步驟2生成的模板元素列表在步驟1生成的頁面元素列表中進(jìn)行最大相似度定位,找出頁面元素列表中所有能夠匹配模板元素列表的段落;在步驟4中,用步驟3所找出的元素段落與模板中的元素匹配,從而確認(rèn)模板中的所有變量、可變模板所對應(yīng)到的頁面元素,在步驟5中,如果可變模板中定義了需要提取的信息,則定義可變模板子模板,將其與所對應(yīng)的頁面元素列表匹配,通過子模板中定義的變量來獲取并不規(guī)則的頁面元素列表中的信息。
【專利說明】一種提取html頁面選定區(qū)域內(nèi)容的方法
—:【技術(shù)領(lǐng)域】
[0001]計算機軟件技術(shù)。一種提取html頁面源代碼中選定區(qū)域內(nèi)容的方法。本發(fā)明使用java語言技術(shù)編寫實現(xiàn),但本發(fā)明并不局限于使用java語言實現(xiàn),使用其他語言一樣可以編寫完成本發(fā)明所述方法。
二:【背景技術(shù)】
[0002]HTML: (HyperText Mark-up Language)即超文本標(biāo)記語言或超文本鏈接標(biāo)示語言,是目前網(wǎng)絡(luò)上應(yīng)用最為廣泛的語言,也是構(gòu)成網(wǎng)頁文檔的主要語言。
[0003]HTML元素:也即HTML標(biāo)簽,是組成HTML文件的基本元素,指從開始標(biāo)簽(starttag)到結(jié)束標(biāo)簽(end tag)的所有代碼。
[0004]JAVA語言Java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言
[0005]WEB應(yīng)用服務(wù)器:根據(jù)客戶端發(fā)送的不同請求,調(diào)用商業(yè)邏輯處理請求,生成并通過HTTP協(xié)議返回HTML頁面給客戶端的應(yīng)用程序。
[0006]靜態(tài)HTML內(nèi)容:WEB應(yīng)用服務(wù)器返回給客戶端的HTML頁面中與客戶端請求無關(guān)的部分,即無論請求內(nèi)容怎么變,始終會存在于返回HTML頁面中的部分。
[0007]動態(tài)HTML內(nèi)容:WEB應(yīng)用服務(wù)器返回給客戶端的HTML頁面中與客戶端請求有關(guān)的部分,即如果請求內(nèi)容有所改變,WEB應(yīng)用服務(wù)器就會根據(jù)不同請求生成相應(yīng)的HTML代碼的部分。
三:
【發(fā)明內(nèi)容】
[0008]本發(fā)明涉及一種提取html頁面選定區(qū)域信息的方法。
[0009]更準(zhǔn)確地說,本發(fā)明根據(jù)所要提取的html頁面信息,分析選定區(qū)域html頁面源碼結(jié)構(gòu),生成一個模板,模板中含有變量,模板中變量位置所對應(yīng)html頁面源碼位置即為所希望獲取的頁面信息,利用模板與html頁面源碼匹配比較,得到對應(yīng)的變量值即為所要提取的html頁面信息。
[0010]本發(fā)明打算用于互聯(lián)網(wǎng)站點頁面信息分析、可定制化的搜索引擎以及其他涉及頁面內(nèi)容自動提取的應(yīng)用。站點頁面信息分析,指通過程序自動將站點頁面中的信息提取出來并存入數(shù)據(jù)庫,然后再根據(jù)不同的邏輯進(jìn)行分析;定制化搜索,指并不在數(shù)據(jù)庫中保存html頁面中的所有內(nèi)容,而僅僅保存搜索引擎所感興趣的html頁面特定信息。
[0011]互聯(lián)網(wǎng)站點網(wǎng)頁,都是由WEB應(yīng)用服務(wù)器生成的,這些頁面中的html源碼,包括兩種內(nèi)容。一種是靜態(tài)html內(nèi)容,另一種是動態(tài)html內(nèi)容。
[0012]靜態(tài)html內(nèi)容中的html元素編寫具有一定的隨意性,不具有規(guī)律性,故此不容易針對這部分分析生成模板。
[0013]動態(tài)html內(nèi)容中的html元素是由WEB應(yīng)用程序根據(jù)商業(yè)邏輯批量生成的,絕大多數(shù)WEB應(yīng)用程序所生成信息都來自于數(shù)據(jù)庫,由于網(wǎng)站信息數(shù)據(jù)庫存儲的規(guī)范化,決定了 WEB應(yīng)用程序批量生成的動態(tài)html內(nèi)容中的html元素組成規(guī)則具有一定的規(guī)律性,具有可分析生成模板的可能性。而且數(shù)據(jù)分析所注重的信息,絕大多數(shù)也都存在于WEB應(yīng)用服務(wù)器所生成的動態(tài)html內(nèi)容之內(nèi)。
[0014]動態(tài)html內(nèi)容的規(guī)律化,也是相對的,由于不同的需求,同一段WEB應(yīng)用服務(wù)器程序生成的多段html內(nèi)容中html元素的組成規(guī)則可能會有細(xì)微的差別。本發(fā)明在頁面分析模板中嵌入了可變模板,可變模板用于匹配格式不規(guī)律的動態(tài)html內(nèi)容,進(jìn)而通過可變模板中定義的變量來獲取格式并不規(guī)律的動態(tài)html內(nèi)容中的可用信息。
四:【具體實施方式】
[0015]步驟I中,將html頁面源碼轉(zhuǎn)換為頁面html元素列表
[0016]下表所示為html源碼及其元素列表,其中表格加有底紋處為WEB應(yīng)用服務(wù)器自動生產(chǎn)的動態(tài)html內(nèi)容,共有2個<tr>〈/tr>標(biāo)簽段落,在動態(tài)html內(nèi)容中加有方框處為希望提取的頁面信息,加粗且傾斜字體處為兩段〈trX/tr〉動態(tài)html代碼標(biāo)簽段落中的不規(guī)則處(也即在第一段中出現(xiàn),而在第二段中未出現(xiàn));
【權(quán)利要求】
1.一種提取html頁面中選定區(qū)域內(nèi)容的方法,該程序包括多個方法,即許多個程序段。該方法的特征在于,在步驟I中,將html頁面源碼轉(zhuǎn)換為頁面html元素列表;在步驟2中,分析html頁面代碼中要提取的部分,制定一個頁面分析模板,并將該模板轉(zhuǎn)換為模板html元素列表;步驟3中,用步驟2生成的分析模板html元素列表在步驟I生成的頁面html元素列表中進(jìn)行最大相似度定位,找到頁面的html元素列表中所有能夠匹配分析模板html元素列表的段落所在位置;在步驟4中,用步驟3所定位出的html元素段落與分析模板中的元素匹配,從而確認(rèn)分析模板中的所有變量、可變模板所對應(yīng)到的頁面html元素,在步驟5中,如果步驟4所提取出的可變模板所對應(yīng)的不規(guī)則頁面html元素中有需要提取出的信息,則再給可變模板定義子模板,將其與所對應(yīng)的頁面html元素列表匹配,進(jìn)而通過子模板中定義的變量來獲取格式并不規(guī)則的頁面html元素列表中的可用信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,將html頁面源碼作為字符串讀入,并將該字符串解析為頁面html元素列表。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,分析html頁面中選定區(qū)域的html元素,制定頁面分析模板,模板分三種元素,一,常量,即該區(qū)域html代碼中必然出現(xiàn)且內(nèi)容不變的部分,通常為靜態(tài)html代碼;二,變量,即該區(qū)域html代碼中必然出現(xiàn)且可變的部分,通常為動態(tài)html代碼;三,可變模板,即該區(qū)域可能出現(xiàn)也可能不出現(xiàn)的html代碼,通常也為動態(tài)html代碼。在模板定義完成之后,將該模板字符串轉(zhuǎn)換為模板html元素列表。
4.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于,通過使用自定義的最大相似度算法,將模板html元素列表在頁面html元素列表上進(jìn)行定位,找出頁面html元素列表上所有能夠匹配模板html元素列表的段落。
5.根據(jù)權(quán)利要求1、2、3或4所述的方法,其特征在于,用模板html元素列表與定位的頁面html元素列表段落進(jìn)行匹配,找出對應(yīng)模板中變量、可變模板的頁面元素內(nèi)容。即為所欲提取出的頁面信息。
6.根據(jù)權(quán)利要求1、2、3、4或5所述的方法,其特征在于,如果可變模板所對應(yīng)的html元素中還有進(jìn)一步需要提取的信息,則需再給可變模板定義子模板,將其與所對應(yīng)的html元素列表匹配,進(jìn)而通過子模板中定義的變量來獲取格式并不規(guī)則的頁面html元素列表中的可用信息。
【文檔編號】G06F9/44GK103488665SQ201310204988
【公開日】2014年1月1日 申請日期:2013年5月24日 優(yōu)先權(quán)日:2013年5月24日
【發(fā)明者】趙冰 申請人:趙冰