999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于HTML Parser的WEB信息提取系統的設計和實現

2011-01-01 00:00:00曾維佳
電腦知識與技術 2011年4期

摘要:Web信息的急劇增長,給信息的有效使用提出了巨大挑戰,如何快速、準確地從Web中獲取所需信息己經成為亟待解決的問題?;贖TML Parser包的Web頁面信息提取系統能夠準確的提取用戶感興趣的信息用于進一步分析,更加充分有效地利用Web這個巨大的信息源。這種方法可以普遍適用于WEB頁面的信息提取。

關鍵詞:WEB信息提??;HTMLParser正則表達式

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2011)04-0970-03

隨著計算機的普及以及互聯網(WWW)的迅猛發展,大量信息以電子文檔的形式出現在人們的面前,但由于人類審美觀以及商業上的需求,現在的Web頁面除了包含與主題相關內容外,還充斥著大量與主題無關的信息,影響了對有用信息的辨別。為了應對信息過載的挑戰,信息提取技術應運而生,它的主要功能是從WEB文本中提取出特定的事實信息,比如,從新聞報道中提取出恐怖事件的詳細情況:地點、作案者、受害者、襲擊目標、使用的武器等;從經濟新聞中提取出公司發布新產品的情況:公司名、產品名、發布時間、產品性能等。如何讓計算機從WEB數據源中獲取用戶感興趣的信息,避免“數據爆炸,知識匾乏”的尷尬,正是WEB提取技術的關鍵所在。

1 系統結構

HTML Parser是一個純Java編寫的HTML解析工具庫,它不依賴于其它的Java庫文件,主要用于改造或提取HTML。它能高效率解析HTML文檔,而錯誤率幾乎為零,是目前最好的HTML解析和分析的工具。本系統首先利用HTML Parser遞歸提取各層URL信息,然后利用正則表達式對各URL對應頁面進行電子郵件信息提取。

1.1 提取網站內部的電子郵件數據算法

輸入:某一網站首頁地址(URL)。

輸出:本網站內部Deep層頁面上的電子郵件信息。

算法:

l) 提取首頁URL信息(n個);

2) 遞歸處理首頁的URL信息Deep層,分別提取各層頁面上的URL信息;

3) 將提取到的URL信息存入數據庫;

4) 分析所有URL對應的頁面并提取電子郵件信息,將提取到的電子郵件信息存入數據庫。

1.2 系統構成

l) 提取URL模塊

系統的核心之一,它實現的主要功能是利用HTML Parser API,提取初始URL頁面Deep層上的所有URL。

2) 提取Email信息模塊

首先利用HTML Parser API將所有URL頁面的文本內容存入文本文件中,然后利用正則表達式提取該文本文檔中的Email信息,接著對其余頁面做同樣處理。

3) 存儲模塊

利用MySql存儲提取的Email數據,并不斷更新數據庫避免保存重復信息。

2 系統實現

2.1 提取Deep層頁面內鏈接

提取Deep層頁面內鏈接的算法為extractLinks(String loc),該算法實現了遞歸搜索網站內部Deep層所有的URL信息并保存于svecLink。

算法所需全局變量定義如下:

Public static Vector svecLink=new Vector();//存放內部的URL

Public static Vector svecOutLink=new Vector();//存放外部的URL

Public static String hostName;//主機名稱

GetHostName(String URL);//判斷URL是否為網站內部URL

遞歸搜索部分代碼如下:

Public void extractLinks(String loc) throwsParserException

{

Vector vecTemp=new Vector();//保存一層頁面的URL用于遞歸搜索

this.parser=new Parser(loc);//HTML parser的入口

parser.setEncoding(“gh2312”);

Node [] links=parser.extractAllNodesThatAre(LinkTag.class);//解析出loc對應頁面內所有鏈接標簽

for(int i=0;i

LinkTag linkTag=(LinkTag)links[i];

strl=linkTag.getLink();//獲得某一URL[I]

if(!svecLink.contains(strl)){//避免保存重復的URL

if(GetHostName(strl).equals(hostName))

{

svecLink.add(strl);

vecTemp.add(strl);//vecTemp保存某一層所有URL

}

else{

svecOutlink.add(strl);

}}};

String strNew;

if(a>0b<=Deep) //如果小于深度Deep繼續遞歸搜索

{

for(int i=0;i

strNew=(String)vecTemp.get(i);//獲得vecTemp層第i個URL

extractLinks(strNew);//遞歸搜索strNew頁面內部所有的URL

}}}}//解析到的所有URL保存在svecLink中。

2.2 提取各層頁面的電子郵件信息

利用HTML Parser中的nodeIterator接口,可以得到頁面中所有標簽位置以及相應的信息,然后可以提取Title、Image和Link等信息,但是還有一些信息HTMLParser解析不到,因此需要利用正則表達式解析并提取這些信息。

l) 獲得URL頁面文檔顯示的所有文本信息。使用HTMLParserAPI編寫FilterBean和StringBean兩個類,將URL頁面的所有文本內容存入文本文件中。

Public String getDocumentAt(String urlString)

{

String a;

FilterBean fb=new FilterBean();

NodeClassFilter span=new NodeClassFilter(BodyTag.class);

fb.setFilters(new NodeFilter[]{span});

fb.setURL(“urlstring”);

Bufferedwriter be=new Bufferedwriter(newFileWriter(“al.txt”));

a=fb.getText();

be.write(a);

}

2) 查找文本文檔文件內部Email信息并存入數據庫

Public void lookEmail(String doeument)//找出一個頁面上的Email

{

Pattern pattern=Patten.compile(“([a-z0-9A-z]+[-|\\\\.]?)+[ a-z0-9A-z]@([ a-z0-9A-z]+(-[ a-z 0-9A-z]+)?\\\\.){l,2}[a-zA-Z]{2,}”;Pattern.CASE-INSENSITIVE);//引號中為提取電子郵件的正則表達式,利用該正則表達式,提取頁面中電子郵件信息

Matcher matcher=Pattern.matcher(doccument);

建立到數據庫的連接;

while(matcher.find())//如果匹配到,文檔還沒結束則繼續匹配

{String match=matcher.group();

將匹配到的電子郵件即match插入數據庫;

db.execute Update(strsql);//更新數據庫

}

db.close;//關閉數據庫

}

2.3 存儲提取的電子郵件信息

系統采用MySQL Driver操作數據庫,類DBConnect建立到Mysql數據庫的連接,方法executeQuery()執行產生單個結果集操作,方法executeUpdate()根據參數不同執行插入、更新、刪除等操作。

//加載Mysql驅動程序類

Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306; databaseName= DB; user=id;password=pass”);

//建立到數據庫DB的連接

}catch(..….)//捕捉沒有成功加載驅動程序類的異常

}

//executeQuery()示例代碼

Public Resultset executeQuery(String sql){

try{

Statement stmt=conn.createStatement();//創建statement對象,執行簡單的SQL語句

ResultSet rs=stmt.executeQuery(sql);}catch(……){}//捕捉顯示數據庫連接錯誤或查詢錯誤

return rs;

}

//executeupdate()示例代碼

Public int executeUpdate(String sql){

int number=0;

try{

Statement stmt=conn.createStatement();

stmt.executeUpdate(sql);

if(conn==1){return-1;}

if(stmt==1){retum-1;}

}catch(……){}

return number;//number區別更新操作是否成功

}

3 小結

WEB信息提取是一個新興的研究熱點,由于WEB文檔的多樣性,WEB信息提取還面臨很多技術難題。本文對WEB信息提取技術做了初步研究,基于HTMLParser技術和正則表達式,以提取網站內部電子郵件信息為例,提出了WEB信息提取系統設計方案,闡述了電子郵件信息提取的工作原理和關鍵技術,給出了電子郵件信息提取算法,詳細介紹了系統的提取URL、電子郵件和存儲模塊,對于WEB頁面信息的提取具有一定的現實意義。

主站蜘蛛池模板: 黄色国产在线| 国产成人无码综合亚洲日韩不卡| 国产成人一级| AV熟女乱| 日韩免费毛片视频| 中文无码毛片又爽又刺激| 色偷偷男人的天堂亚洲av| 国产午夜小视频| 精品国产www| 在线观看欧美精品二区| 久久综合五月婷婷| 97在线观看视频免费| 久久久黄色片| 久久久久无码国产精品不卡 | 成人在线不卡| 亚洲天天更新| h网站在线播放| 尤物成AV人片在线观看| 亚洲自偷自拍另类小说| 黄片一区二区三区| 久久精品无码一区二区日韩免费| 日本不卡免费高清视频| 欧美啪啪视频免码| 久久性妇女精品免费| 91美女视频在线观看| 国产精品亚洲片在线va| 国产精品亚洲精品爽爽| 福利在线不卡| 亚洲欧美另类久久久精品播放的| 在线观看国产黄色| 全午夜免费一级毛片| 2020国产精品视频| 久久一色本道亚洲| 久久国产精品嫖妓| 99久久精品免费观看国产| 免费国产小视频在线观看| 久久永久视频| 国产麻豆aⅴ精品无码| 爆操波多野结衣| 97超级碰碰碰碰精品| 久久伊伊香蕉综合精品| 2020久久国产综合精品swag| 久久久久久久久亚洲精品| 婷婷综合缴情亚洲五月伊| 亚洲中文字幕97久久精品少妇| 亚洲婷婷六月| 午夜福利无码一区二区| 色国产视频| 999国产精品永久免费视频精品久久| 99精品伊人久久久大香线蕉| 男女男免费视频网站国产| 无码高潮喷水在线观看| 99精品国产自在现线观看| 亚洲精品自在线拍| 国产精品成人第一区| 精品一区二区三区中文字幕| 色综合天天综合| 亚洲天堂2014| 亚洲视频免费播放| 亚洲乱码精品久久久久..| 在线观看免费人成视频色快速| 久久情精品国产品免费| 天天躁夜夜躁狠狠躁躁88| 国产精品免费p区| 亚洲精品免费网站| 亚洲国产精品国自产拍A| 欧美不卡二区| 香蕉久久国产超碰青草| 国产精品污视频| 成人午夜精品一级毛片| 国产区免费精品视频| 2021最新国产精品网站| 国产在线观看精品| 国产精品高清国产三级囯产AV| 丁香婷婷综合激情| 精品人妻无码中字系列| 久久一日本道色综合久久| 91破解版在线亚洲| 亚洲无限乱码一二三四区| 国产成人综合久久精品下载| 在线观看国产网址你懂的| 超清无码一区二区三区|