日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

java htmlparser 使用教程_HTMLParser使用详解(1)

發(fā)布時(shí)間:2025/3/12 HTML 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java htmlparser 使用教程_HTMLParser使用详解(1) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在研究搜索引擎的開發(fā)中,對(duì)于HTML網(wǎng)頁的處理是核心的一個(gè)環(huán)節(jié)。網(wǎng)上有很多開源的代碼,對(duì)于Java來說,HTMLParser是比較著名并且得到廣泛應(yīng)用的一個(gè)。HTMLParser的主頁是http://htmlparser.sourceforge.net/,最后的更新是2006年9月的1.6版。不過沒關(guān)系,HTML的內(nèi)容已經(jīng)很久沒有大的變化了,HTMLParser處理起來基本沒有任何問題。HTMLParser具有小巧,快速的優(yōu)點(diǎn),缺點(diǎn)是相關(guān)文檔比較少(英文的也少),很多功能需要自己摸索。對(duì)于初學(xué)者還是要費(fèi)一些功夫的,而一旦上手以后,會(huì)發(fā)現(xiàn)HTMLParser的結(jié)構(gòu)設(shè)計(jì)很巧妙,非常實(shí)用,基本你的各種需求都可以滿足。

這里我根據(jù)自己這幾個(gè)月來的經(jīng)驗(yàn),寫了一點(diǎn)入門的東西,希望能對(duì)新學(xué)習(xí)HTMLParser的朋友們有所幫助。(不過當(dāng)年高考本人語文只比及格高一分,所以文法方面的問題還希望大家多多擔(dān)待)

HTMLParser的核心模塊是org.htmlparser.Parser類,這個(gè)類實(shí)際完成了對(duì)于HTML頁面的分析工作。這個(gè)類有下面幾個(gè)構(gòu)造函數(shù):

public Parser ();

public Parser (Lexer lexer, ParserFeedback fb);

public Parser (URLConnection connection, ParserFeedback fb) throws ParserException;

public Parser (String resource, ParserFeedback feedback) throws ParserException;

public Parser (String resource) throws ParserException;

public Parser (Lexer lexer);

public Parser (URLConnection connection) throws ParserException;

和一個(gè)靜態(tài)類 public static Parser createParser (String html, String charset);

對(duì)于大多數(shù)使用者來說,使用最多的是通過一個(gè)URLConnection或者一個(gè)保存有網(wǎng)頁內(nèi)容的字符串來初始化Parser,或者使用靜態(tài)函數(shù)來生成一個(gè)Parser對(duì)象。ParserFeedback的代碼很簡單,是針對(duì)調(diào)試和跟蹤分析過程的,一般不需要改變。而使用Lexer則是一個(gè)相對(duì)比較高級(jí)的話題,放到以后再討論吧。

這里比較有趣的一點(diǎn)是,如果需要設(shè)置頁面的編碼方式的話,不使用Lexer就只有靜態(tài)函數(shù)一個(gè)方法了。對(duì)于大多數(shù)中文頁面來說,好像這是應(yīng)該用得比較多的一個(gè)方法。

下面是初始化Parser的例子。/**

* @author www.baizeju.com

*/

package com.baizeju.htmlparsertester;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.FileInputStream;

import java.io.File;

import java.net.HttpURLConnection;

import java.net.URL;

import org.htmlparser.visitors.TextExtractingVisitor;

import org.htmlparser.Parser;

/**

* @author www.baizeju.com

*/

public class Main {

private static String ENCODE = "GBK";

private static void message( String szMsg ) {

try{ System.out.println(new String(szMsg.getBytes(ENCODE), System.getProperty("file.encoding"))); } catch(Exception e ){}

}

public static String openFile( String szFileName ) {

try {

BufferedReader bis = new BufferedReader(new InputStreamReader(new FileInputStream( new File(szFileName)), ENCODE) );

String szContent="";

String szTemp;

while ( (szTemp = bis.readLine()) != null) {

szContent+=szTemp+"/n";

}

bis.close();

return szContent;

}

catch( Exception e ) {

return "";

}

}

public static void main(String[] args) {

String szContent = openFile( "E:/My Sites/HTMLParserTester.html");

try{

//Parser parser = Parser.createParser(szContent, ENCODE);

//Parser parser = new Parser( szContent );

Parser parser = new Parser( (HttpURLConnection) (new URL("http://127.0.0.1:8080/HTMLParserTester.html")).openConnection() );

TextExtractingVisitor visitor = new TextExtractingVisitor();

parser.visitAllNodesWith(visitor);

String textInPage = visitor.getExtractedText();

message(textInPage);

}

catch( Exception e ) {

}

}

}

加重的部分測(cè)試了幾種不同的初始化方法,后面的顯示了結(jié)果。大家看到能Parser出內(nèi)容就可以了,如何操作訪問Parser的內(nèi)容我們?cè)诤竺嬗懻摗?/p>

以上就是HTMLParser使用詳解(1)的內(nèi)容,更多相關(guān)內(nèi)容請(qǐng)關(guān)注PHP中文網(wǎng)(www.php.cn)!

本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請(qǐng)注明出處,感謝您的尊重!

總結(jié)

以上是生活随笔為你收集整理的java htmlparser 使用教程_HTMLParser使用详解(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。