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欧美在线观看| 国产精品入口麻豆| 国产成人亚洲综合a∨婷婷| 国产综合色在线视频播放线视| 91免费片| 99视频只有精品| 在线中文字幕日韩| 91区国产福利在线观看午夜| 国产情精品嫩草影院88av| 亚洲精品片911| 国产亚洲视频中文字幕视频| 久久大香伊蕉在人线观看热2| 亚洲AV无码一二区三区在线播放| 国内黄色精品| 欧美三级视频在线播放| 又猛又黄又爽无遮挡的视频网站| 全午夜免费一级毛片| 99尹人香蕉国产免费天天拍| 91视频日本| 婷婷综合在线观看丁香| 国产精品成人免费综合| 国产乱子伦一区二区=| 中国美女**毛片录像在线| 国产小视频网站| 国产在线无码av完整版在线观看| 国产69囗曝护士吞精在线视频| 久久综合AV免费观看| 免费人成网站在线观看欧美| 久久激情影院| 极品性荡少妇一区二区色欲| 亚洲成人在线网| 丁香婷婷综合激情| 精品国产91爱| 91区国产福利在线观看午夜| 中文毛片无遮挡播放免费| 久久精品嫩草研究院| 免费国产高清视频| 国产精品任我爽爆在线播放6080| 亚洲国内精品自在自线官| 久久中文无码精品| 人妻无码一区二区视频| 欧美一级黄色影院| 国产一区二区三区日韩精品| 强奷白丝美女在线观看| 国产精品免费久久久久影院无码| 婷五月综合| 亚洲国产日韩在线观看| 成人精品免费视频| 国产成人精品男人的天堂| 久久亚洲欧美综合| 99在线视频网站| 青青青国产精品国产精品美女| 亚洲国产一区在线观看| 97影院午夜在线观看视频| 综合社区亚洲熟妇p| 午夜精品区| 久草视频精品| 亚洲精品欧美重口| 国产无码高清视频不卡| 国产迷奸在线看| 中文字幕乱妇无码AV在线| 超清人妻系列无码专区| 无码区日韩专区免费系列| 精品在线免费播放| 人妻一区二区三区无码精品一区| 国产精品自在在线午夜区app| 精品亚洲国产成人AV| 五月婷婷伊人网| 亚洲动漫h| 精品国产美女福到在线直播| 亚洲精品制服丝袜二区| 人妻精品久久久无码区色视| 青青草国产在线视频| 国产乱论视频|