專利名稱:一種基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法
技術(shù)領(lǐng)域:
本發(fā)明屬于互聯(lián)網(wǎng)信息采集領(lǐng)域,具體地說是涉及一種基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法。
背景技術(shù):
隨著社會(huì)信息化的迅猛發(fā)展,網(wǎng)絡(luò)已經(jīng)成為人們獲取信息的重要來源。而網(wǎng)絡(luò)信息具有海量,復(fù)雜,非結(jié)構(gòu)化等特點(diǎn),為網(wǎng)絡(luò)信息的獲取以及基于網(wǎng)絡(luò)信息搜集的分析與研究工作都帶來了很大困難。大量的實(shí)踐也表明,在網(wǎng)絡(luò)上對(duì)各種不同的信息載體(新聞網(wǎng)、博客、論壇、微博等)進(jìn)行信息采集是困難的。特別是想要臨時(shí)性的針對(duì)某個(gè)特定目標(biāo)進(jìn)行信息采集時(shí),對(duì)采集系統(tǒng)的適用能力、采集效率和操作的簡易性都提出了很高的要求。 為了適應(yīng)市場越來越多的需求,針對(duì)每個(gè)采集對(duì)象的模板快速生成方法也應(yīng)運(yùn)而生?;趧?dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法,在自動(dòng)采集領(lǐng)域,可以有針對(duì)性的對(duì)一些信息載體(新聞網(wǎng)、博客、論壇、微博等)進(jìn)行模板的定制,包含信息的標(biāo)題、內(nèi)容、作者、發(fā)文時(shí)間等一些常見表現(xiàn)形式?;趧?dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法,一方面應(yīng)用于輿情管理領(lǐng)域,使用在公安、安全、安監(jiān)等政府部門;另一方面也可以使用在信息分析領(lǐng)域,如獵頭行業(yè)。基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法中,認(rèn)為互聯(lián)網(wǎng)的信息載體是多變的,對(duì)載體的信息采集是需要不同模板的。在市場上也有許多信息采集系統(tǒng),但大多都存在著信息采集內(nèi)容不具體、模板配置上技術(shù)要求門檻高、采集對(duì)象范圍偏小等問題。例如=TIS信息采集器,較適宜對(duì)新聞網(wǎng)站進(jìn)行采集,對(duì)其它的信息載體(如論壇、博客、微博等)采集效率較低;Heritrix對(duì)采集對(duì)象的支持很全面,但對(duì)采集的信息照單全收,沒有針對(duì)信息的不同而采用不同的模板,采集到的信息魚龍混雜,不利于分析;網(wǎng)絡(luò)神采信息采集系統(tǒng),對(duì)上述兩個(gè)系統(tǒng)的缺陷都有改進(jìn),但改進(jìn)不撤底。網(wǎng)絡(luò)神采,在采集不同的對(duì)象時(shí),僅僅定義了一些采集規(guī)則來區(qū)分采集對(duì)象,但規(guī)則的專業(yè)性較強(qiáng)、操作技巧較多,不利于對(duì)市場的全面推廣。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是針對(duì)現(xiàn)有技術(shù)存在的不足,提供一種基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法,該方法可以自動(dòng)加載采集目標(biāo),并與用戶交互完成特定模板的建立。為了解決上述問題,本發(fā)明采用下述技術(shù)方案本發(fā)明是一種基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法,其特點(diǎn)是,其步驟如下
(1)訪問互聯(lián)網(wǎng)加載目標(biāo)頁面得到網(wǎng)頁文本源碼集合S;
(2)根據(jù)標(biāo)簽的正則表達(dá)式識(shí)別出集合S中的節(jié)點(diǎn)集合N,并為集合N中的每個(gè)節(jié)點(diǎn)添加唯一序列號(hào);
(3)依據(jù)節(jié)點(diǎn)集合N構(gòu)造出具有互相依賴的層次結(jié)構(gòu)模型樹T;(4)最后輸入節(jié)點(diǎn)ID和移動(dòng)操作,利用遍歷分析算法迭代計(jì)算出節(jié)點(diǎn)的前后標(biāo)簽表達(dá)式。以上所述的基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法技術(shù)方案中,所述的步驟(I)可以按以下具體操作步驟進(jìn)行操作
(1-1)輸入網(wǎng)頁地址利用HttpClient獲取原始HTML源碼集合SI ;
(1-2)利用Cobra執(zhí)行集合SI中JavaScript,將其返回結(jié)果填充到SI相應(yīng)位置,最后得到文本源碼集合S2,即所述網(wǎng)頁文本源碼集合S。以上所述的基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法技術(shù)方案中,所述的步驟(2)可以按以下具體操作步驟進(jìn)行操作
(2-1)依據(jù)正則匹配文本源碼集合S得到節(jié)點(diǎn)η ;
(2-2)判斷節(jié)點(diǎn)η類型是否是結(jié)束標(biāo)簽節(jié)點(diǎn)、script節(jié)點(diǎn)及其嵌套節(jié)點(diǎn)、link節(jié)點(diǎn)、br節(jié)點(diǎn)、注釋/注釋表達(dá)式節(jié)點(diǎn)中的一種,如果不是上述描述的節(jié)點(diǎn)類型,則重新執(zhí)行B3,否則執(zhí)行步驟(2-1);
(2-3)利用序列生成器生成唯一系統(tǒng)標(biāo)識(shí)序列號(hào),追加到節(jié)點(diǎn)η標(biāo)簽中;
(2-4)返回重復(fù)執(zhí)行步驟(2-1),直至識(shí)別出所有的節(jié)點(diǎn)η,所有的節(jié)點(diǎn)η組成的集合, 即為所述的節(jié)點(diǎn)結(jié)合N。以上所述的基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法技術(shù)方案中,所述步驟
(3)中可以按以下具體操作步驟進(jìn)行操作
(3-1)利用HtmlParser生成HTML DOM結(jié)構(gòu)作為R’,R’初始為DOM中的根節(jié)點(diǎn),同時(shí)創(chuàng)建自定義的層次結(jié)構(gòu)模型樹HtmlNode作為節(jié)點(diǎn)R,R初始默認(rèn)為樹的根節(jié)點(diǎn);
(3-2)將R’中的節(jié)點(diǎn)內(nèi)容,ID以及子節(jié)點(diǎn)信息賦予節(jié)點(diǎn)R中;
(3-3)若節(jié)點(diǎn)R’有子節(jié)點(diǎn),獲取R’的標(biāo)簽轉(zhuǎn)換成結(jié)束節(jié)點(diǎn),做為R的兄弟節(jié)點(diǎn);
(3-4)獲取R’的下一個(gè)節(jié)點(diǎn)賦予R’,返回再次執(zhí)行步驟(3-2),直至遍歷HTML DOM結(jié)束,節(jié)點(diǎn)R所產(chǎn)生的一系列層次結(jié)構(gòu)即為所述的層次結(jié)構(gòu)模型樹T。以上所述的基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法技術(shù)方案中,所述步驟
(4)可以按以下具體操作步驟進(jìn)行操作
(4-1)點(diǎn)擊加載節(jié)點(diǎn)操作,獲取節(jié)點(diǎn)標(biāo)識(shí)ID ;
(4-2)根據(jù)ID查詢到樹T對(duì)應(yīng)的節(jié)點(diǎn)對(duì)象;
(4-3)點(diǎn)擊前/后置移動(dòng)操作O ;
(4-4)計(jì)算前/后置邊界;
(4-5)獲取前/后置表達(dá)式。與現(xiàn)有技術(shù)相比,本發(fā)明的基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法具有以下效果
1、人機(jī)交互完成模板定制用戶只需要點(diǎn)擊鼠標(biāo)即可完成操作,不需要專業(yè)的技術(shù)知
識(shí);
2、采集時(shí)區(qū)分信息的屬性采集信息中區(qū)分信息的標(biāo)題、作者、內(nèi)容、回復(fù)時(shí)間、回復(fù)內(nèi)容等等在瀏覽器上看到的內(nèi)容;
3、采集效率高在采集過程中,只對(duì)模板定義的內(nèi)容進(jìn)行采集,占用網(wǎng)絡(luò)資源小;
4、模板支持查新功能采集時(shí)只對(duì)更新內(nèi)容進(jìn)行采集,不重復(fù)采集。
圖I是本發(fā)明方法的一種流程框 圖2是圖I中步驟102所述的識(shí)別并標(biāo)記集合S中的節(jié)點(diǎn)集合N流程 圖3是圖I中步驟103所述的構(gòu)造節(jié)點(diǎn)的層次結(jié)構(gòu)模型樹T流程 圖4是圖I中步驟104所有的輸入節(jié)點(diǎn)ID和移動(dòng)操作計(jì)算節(jié)點(diǎn)的前后標(biāo)簽表達(dá)式流程圖。
具體實(shí)施例方式以下參照附圖,進(jìn)一步描述本發(fā)明的具體技術(shù)方案,以便于本領(lǐng)域的技術(shù)人員進(jìn)一步地理解本發(fā)明,而不構(gòu)成對(duì)其權(quán)利的限制。 實(shí)施例1,一種基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法,其步驟如下
(1)訪問互聯(lián)網(wǎng)加載目標(biāo)頁面得到網(wǎng)頁文本源碼集合S;
(2)根據(jù)標(biāo)簽的正則表達(dá)式識(shí)別出集合S中的節(jié)點(diǎn)集合N,并為集合N中的每個(gè)節(jié)點(diǎn)添加唯一序列號(hào);
(3)依據(jù)節(jié)點(diǎn)集合N構(gòu)造出具有互相依賴的層次結(jié)構(gòu)模型樹T;
(4)最后輸入節(jié)點(diǎn)ID和移動(dòng)操作,利用遍歷分析算法迭代計(jì)算出節(jié)點(diǎn)的前后標(biāo)簽表達(dá)式。實(shí)施例2,實(shí)施例I所述的基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法的步驟
(I)的具體操作步驟如下
(1-1)輸入網(wǎng)頁地址利用HttpClient獲取原始HTML源碼集合SI ;
(1-2)利用Cobra執(zhí)行集合SI中JavaScript,將其返回結(jié)果填充到SI相應(yīng)位置,最后得到文本源碼集合S2,即所述網(wǎng)頁文本源碼集合S。實(shí)施例3,實(shí)施例I或2所述的基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法的的步驟(2)的具體操作步驟如下
(2-1)依據(jù)正則匹配文本源碼集合S得到節(jié)點(diǎn)η ;
(2-2)判斷節(jié)點(diǎn)η類型是否是結(jié)束標(biāo)簽節(jié)點(diǎn)、script節(jié)點(diǎn)及其嵌套節(jié)點(diǎn)、link節(jié)點(diǎn)、br節(jié)點(diǎn)、注釋/注釋表達(dá)式節(jié)點(diǎn)中的一種,如果不是上述描述的節(jié)點(diǎn)類型,則重新執(zhí)行B3,否則執(zhí)行步驟(2-1);
(2-3)利用序列生成器生成唯一系統(tǒng)標(biāo)識(shí)序列號(hào),追加到節(jié)點(diǎn)η標(biāo)簽中;
(2-4)返回重復(fù)執(zhí)行步驟(2-1),直至識(shí)別出所有的節(jié)點(diǎn)η,所有的節(jié)點(diǎn)η組成的集合,即為所述的節(jié)點(diǎn)結(jié)合N。實(shí)施例4,實(shí)施例I或2或3所述的基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法的步驟(3)的具體操作步驟如下
(3-1)利用HtmlParser生成HTML DOM結(jié)構(gòu)作為R’,R’初始為DOM中的根節(jié)點(diǎn),同時(shí)創(chuàng)建自定義的層次結(jié)構(gòu)模型樹HtmlNode作為節(jié)點(diǎn)R,R初始默認(rèn)為樹的根節(jié)點(diǎn);
(3-2)將R’中的節(jié)點(diǎn)內(nèi)容,ID以及子節(jié)點(diǎn)信息賦予節(jié)點(diǎn)R中;
(3-3)若節(jié)點(diǎn)R’有子節(jié)點(diǎn),獲取R’的標(biāo)簽轉(zhuǎn)換成結(jié)束節(jié)點(diǎn),做為R的兄弟節(jié)點(diǎn);
(3-4)獲取R’的下一個(gè)節(jié)點(diǎn)賦予R’,返回再次執(zhí)行步驟(3-2),直至遍歷HTML DOM結(jié)束,節(jié)點(diǎn)R所產(chǎn)生的一系列層次結(jié)構(gòu)即為所述的層次結(jié)構(gòu)模型樹T。實(shí)施例5,實(shí)施例1-4中任何一項(xiàng)所述的基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)米集系統(tǒng)模版生成方法的步驟(4)的具體操作步驟如下
(4-1)點(diǎn)擊加載節(jié)點(diǎn)操作,獲取節(jié)點(diǎn)標(biāo)識(shí)ID ;
(4-2)根據(jù)ID查詢到樹T對(duì)應(yīng)的節(jié)點(diǎn)對(duì)象;
(4-3)點(diǎn)擊前/后置移動(dòng)操作O ;
(4-4)計(jì)算前/后置邊界;
(4-5)獲取前/后置表達(dá)式。、
實(shí)施例6,參照?qǐng)D1-4,用本發(fā)明的基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法進(jìn)行的操作實(shí)驗(yàn),包括如下步驟
步驟101、加載目標(biāo)頁面得到文本源碼集合S,其具體如下
(1)、輸入網(wǎng)頁地址利用HttpClient獲取原始HTML源碼集合SI;例如,通過互聯(lián)網(wǎng)得到的原始HTML源碼集合SI如下
<html>
〈head〉
〈title〉待生成的模板目標(biāo)〈/title〉
〈script type=//text/javascript"〉var go = function () {
document. getElementByld ("content_id") · innerHTML="JS 替代內(nèi)容";}
</script)
〈/head〉
〈body onload=〃javascript: go ();〃>
<p id=〃content_id〃> 內(nèi)容 </p>
〈/body〉
</html>
HTML源碼集合由各種HTML標(biāo)簽和頁面內(nèi)容組成;
(2)、利用Cobra執(zhí)行SI中的JavaScript,并將處理的結(jié)果填充SI相應(yīng)位置。很多網(wǎng)頁信息需經(jīng)過JS等腳本處理后才被呈現(xiàn)出,因此有必要對(duì)腳本所攜帶的信息進(jìn)行處理。例如,Al中所述的集合SI中有部分信息存在于JS腳本中,利用Cobra執(zhí)行后,p標(biāo)簽中的內(nèi)容文本應(yīng)該為“ JS替代內(nèi)容”。這樣處理后得到一個(gè)新的源碼集合S2,即所述網(wǎng)頁文本源碼集合S。步驟102、識(shí)別并標(biāo)記集合S中的節(jié)點(diǎn)集合N。參照?qǐng)D2,包括如下步驟
步驟201、使用正則表達(dá)式r= “<(Γ〈>]*)>”識(shí)別集合S中的標(biāo)簽作為節(jié)點(diǎn)η。節(jié)點(diǎn)η包括名稱,屬性,文本內(nèi)容。例如A1中所述的集合SI中的P標(biāo)簽所對(duì)應(yīng)的節(jié)點(diǎn)η為“〈Pid="content_id"> 內(nèi)容,,;
步驟202、判斷節(jié)點(diǎn)η是否為空值,如果是空值,則說明集合S中標(biāo)簽已被識(shí)別完畢,即執(zhí)行步驟201完畢;如果是非空值,則說明集合S中的標(biāo)簽為識(shí)別完畢進(jìn)入步驟203 ;
步驟203、判斷節(jié)點(diǎn)η類型是否是結(jié)束標(biāo)簽節(jié)點(diǎn)、script節(jié)點(diǎn)及其嵌套節(jié)點(diǎn)、I ink節(jié)點(diǎn)、br節(jié)點(diǎn)、注釋/注釋表達(dá)式節(jié)點(diǎn)中的一種,如果是其中一種類型,返回步驟201識(shí)別下一個(gè)節(jié)點(diǎn)η ;如果不是其中一個(gè)類型,進(jìn)入下一步驟204 ;
步驟204、序列生成器生成唯一系統(tǒng)標(biāo)識(shí)符追加到節(jié)點(diǎn)標(biāo)簽中。例如為Al所述的集合SI中的P標(biāo)簽添加序列,若產(chǎn)生的序列號(hào)20100120112233 (當(dāng)前日期時(shí)間戳+1到1000000之間的一個(gè)隨機(jī)數(shù)),添加到P標(biāo)簽中,則P標(biāo)簽中的信息應(yīng)為“〈P id=〃content_id〃 systemid=〃20100120112233〃>”;追加系統(tǒng)標(biāo)識(shí)完畢后,返回步驟201,直至所有節(jié)點(diǎn)都添加系統(tǒng)標(biāo)識(shí)符。步驟103、構(gòu)造節(jié)點(diǎn)的層次結(jié)構(gòu)模型樹T,參照?qǐng)D3,包括如下步驟
步驟301、利用HtmlParser解析已被添加系統(tǒng)標(biāo)識(shí)的集合S生成HTML DOM結(jié)構(gòu)R’,R’初始為DOM中的根節(jié)點(diǎn);
步驟302、創(chuàng)建自定義的層次結(jié)構(gòu)模型樹HtmlNode作為節(jié)點(diǎn)R,R初始為樹的根節(jié)點(diǎn);步驟303、將節(jié)點(diǎn)R’中的標(biāo)簽名稱,屬性,文本內(nèi)容賦予節(jié)點(diǎn)R中。例如JfAl所述的集 合SI中的P標(biāo)簽作為節(jié)點(diǎn)賦予節(jié)點(diǎn)R,得到節(jié)點(diǎn)R擁有的信息包含名稱“〈P id=〃COntent_id">,,,系統(tǒng) ID 20100120112233 ;
步驟304、判斷當(dāng)前R’節(jié)點(diǎn)是否有子節(jié)點(diǎn),如果有子節(jié)點(diǎn),則執(zhí)行下一步驟305 ;如果沒有子節(jié)點(diǎn),則執(zhí)行步驟307 ;
步驟305、將R’節(jié)點(diǎn)的標(biāo)簽名稱轉(zhuǎn)換成結(jié)束標(biāo)簽L。例如將Al所述的集合SI中的節(jié)點(diǎn) P 標(biāo)簽名稱 “〈P id=〃content_id〃 systemid=〃20100120112233〃>”,轉(zhuǎn)換成結(jié)束標(biāo)簽為“<如>”記作1^
步驟306、將步驟305中得到結(jié)束標(biāo)簽L轉(zhuǎn)成節(jié)點(diǎn)添加作節(jié)點(diǎn)R兄弟節(jié)點(diǎn);
步驟307、獲取R’的下一個(gè)子節(jié)點(diǎn)并將值賦給R’,作為下一個(gè)的迭代節(jié)點(diǎn);
步驟308、判斷被新賦值的R’是否為空值,如果R’為空值說明步驟301中生成HTMLDOM結(jié)構(gòu)遍歷結(jié)束(所有的節(jié)點(diǎn)R的集合就是所述的層次結(jié)構(gòu)模型樹T),則步驟103結(jié)束;如果R’為非空值,則步驟301中生成HTML DOM結(jié)構(gòu)遍歷未結(jié)束,返回執(zhí)行步驟303。步驟104、輸入節(jié)點(diǎn)ID和移動(dòng)操作計(jì)算節(jié)點(diǎn)的前后標(biāo)簽表達(dá)式,參照?qǐng)D4,包括如下步驟
步驟401、點(diǎn)擊加載某個(gè)頁面節(jié)點(diǎn),獲取該節(jié)點(diǎn)的已被標(biāo)記的標(biāo)識(shí)ID。例如A2中所述的集合S,通過瀏覽器將看到“JS替代內(nèi)容”這樣一個(gè)文本,選擇該文本,點(diǎn)擊加載按鈕,P標(biāo)簽將已標(biāo)識(shí)的系統(tǒng)ID 20100120112233作為請(qǐng)求參數(shù)傳入下一步驟402 ;
步驟402、得到請(qǐng)求參數(shù)后,根據(jù)ID查詢樹T得到相應(yīng)的節(jié)點(diǎn);
步驟403、點(diǎn)擊前/后置移動(dòng)操作按鈕;
步驟404、判斷是前置操作還是后置操作,如果是前置操作,則執(zhí)行步驟405 ;如果不是前置操作而是后置操作,則執(zhí)行步驟407 ;
步驟405、計(jì)算前置邊界;
步驟406、獲取前置表達(dá)式;
步驟407、計(jì)算后置邊界;
步驟408、獲取后置表達(dá)式。
權(quán)利要求
1.一種基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法,其特征在于,其步驟如下 (1)訪問互聯(lián)網(wǎng)加載目標(biāo)頁面得到網(wǎng)頁文本源碼集合S; (2)根據(jù)標(biāo)簽的正則表達(dá)式識(shí)別出集合S中的節(jié)點(diǎn)集合N,并為集合N中的每個(gè)節(jié)點(diǎn)添加唯一序列號(hào); (3)依據(jù)節(jié)點(diǎn)集合N構(gòu)造出具有互相依賴的層次結(jié)構(gòu)模型樹T; (4)最后輸入節(jié)點(diǎn)ID和移動(dòng)操作,利用遍歷分析算法迭代計(jì)算出節(jié)點(diǎn)的前后標(biāo)簽表達(dá)式。
2.根據(jù)權(quán)利要求I所述的基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法,其特征在于,所述的步驟(I)的具體操作步驟如下 (1-1)輸入網(wǎng)頁地址利用HttpClient獲取原始HTML源碼集合SI ; (1-2)利用Cobra執(zhí)行集合SI中JavaScript,將其返回結(jié)果填充到SI相應(yīng)位置,最后得到文本源碼集合S2,即所述網(wǎng)頁文本源碼集合S。
3.根據(jù)權(quán)利要求I所述的基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法,其特征在于,所述的步驟(2)的具體操作步驟如下 (2-1)依據(jù)正則匹配文本源碼集合S得到節(jié)點(diǎn)η ; (2-2)判斷節(jié)點(diǎn)η類型是否是結(jié)束標(biāo)簽節(jié)點(diǎn)、script節(jié)點(diǎn)及其嵌套節(jié)點(diǎn)、link節(jié)點(diǎn)、br節(jié)點(diǎn)、注釋/注釋表達(dá)式節(jié)點(diǎn)中的一種,如果不是上述描述的節(jié)點(diǎn)類型,則重新執(zhí)行B3,否則執(zhí)行步驟(2-1); (2-3)利用序列生成器生成唯一系統(tǒng)標(biāo)識(shí)序列號(hào),追加到節(jié)點(diǎn)η標(biāo)簽中; (2-4)返回重復(fù)執(zhí)行步驟(2-1),直至識(shí)別出所有的節(jié)點(diǎn)η,所有的節(jié)點(diǎn)η組成的集合,即為所述的節(jié)點(diǎn)結(jié)合N。
4.根據(jù)權(quán)利要求I所述的基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法,其特征在于,所述步驟(3)中的具體操作步驟如下 (3-1)利用HtmlParser生成HTML DOM結(jié)構(gòu)作為R’,R’初始為DOM中的根節(jié)點(diǎn),同時(shí)創(chuàng)建自定義的層次結(jié)構(gòu)模型樹HtmlNode作為節(jié)點(diǎn)R,R初始默認(rèn)為樹的根節(jié)點(diǎn); (3-2)將R’中的節(jié)點(diǎn)內(nèi)容,ID以及子節(jié)點(diǎn)信息賦予節(jié)點(diǎn)R中; (3-3)若節(jié)點(diǎn)R’有子節(jié)點(diǎn),獲取R’的標(biāo)簽轉(zhuǎn)換成結(jié)束節(jié)點(diǎn),做為R的兄弟節(jié)點(diǎn); (3-4)獲取R’的下一個(gè)節(jié)點(diǎn)賦予R’,返回再次執(zhí)行步驟(3-2),直至遍歷HTML DOM結(jié)束,節(jié)點(diǎn)R所產(chǎn)生的一系列層次結(jié)構(gòu)即為所述的層次結(jié)構(gòu)模型樹T。
5.根據(jù)權(quán)利要求I所述的基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法,其特征在于,所述步驟(4)的具體操作步驟如下 (4-1)點(diǎn)擊加載節(jié)點(diǎn)操作,獲取節(jié)點(diǎn)標(biāo)識(shí)ID ; (4-2)根據(jù)ID查詢到樹T對(duì)應(yīng)的節(jié)點(diǎn)對(duì)象; (4-3)點(diǎn)擊前/后置移動(dòng)操作O ; (4-4)計(jì)算前/后置邊界; (4-5)獲取前/后置表達(dá)式。
全文摘要
本發(fā)明公開了一種基于動(dòng)態(tài)交互的互聯(lián)網(wǎng)采集系統(tǒng)模版生成方法,其特征在于首先訪問互聯(lián)網(wǎng)加載目標(biāo)頁面得到網(wǎng)頁文本源碼集合S;其次根據(jù)標(biāo)簽的正則表達(dá)式識(shí)別出集合S中的節(jié)點(diǎn)集合N,并為集合N中的每個(gè)節(jié)點(diǎn)添加唯一序列號(hào);接著依據(jù)節(jié)點(diǎn)集合N構(gòu)造出具有互相依賴的層次結(jié)構(gòu)模型樹T;最后輸入節(jié)點(diǎn)ID和移動(dòng)操作,利用遍歷分析算法迭代計(jì)算出節(jié)點(diǎn)的前后標(biāo)簽表達(dá)式。本發(fā)明方法實(shí)現(xiàn)了人機(jī)交互完成模板定制,用戶只需要點(diǎn)擊鼠標(biāo)即可完成操作,采集信息中區(qū)分信息的標(biāo)題、作者、內(nèi)容、回復(fù)時(shí)間、回復(fù)內(nèi)容等等在瀏覽器上看到的內(nèi)容;采集效率高在采集過程中,只對(duì)模板定義的內(nèi)容進(jìn)行采集,占用網(wǎng)絡(luò)資源小;模板支持查新功能。
文檔編號(hào)G06F17/30GK102768660SQ20111011464
公開日2012年11月7日 申請(qǐng)日期2011年5月5日 優(yōu)先權(quán)日2011年5月5日
發(fā)明者仲兆滿, 伊鵬, 劉永超, 李存華, 陳宗華, 陳永江 申請(qǐng)人:江蘇金鴿網(wǎng)絡(luò)科技有限公司