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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HtmlParser 简介

發布時間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HtmlParser 简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

htmlparserhtml頁面處理的算法

?

主要是如下幾種方式

? 采用Visitor方式訪問Html

try {

??? Parser parser = new Parser();

??? parser.setURL(”http://www.google.com”);

??? parser.setEncoding(parser.getEncoding());

??? NodeVisitor visitor = new NodeVisitor() {

??????? public void visitTag(Tag tag) {

??????????? System.out.println (”testVisitorAll()? Tag name is :”

??????????????????? + tag.getTagName() + ” \n Class is :”

??????????????????? + tag.getClass());

??????? }

??? };

??? parser.visitAllNodesWith(visitor);

} catch (ParserException e) {

??? e.printStackTrace();

}

? 采用Filter方式訪問html

try {

??? NodeFilter filter = new NodeClassFilter(LinkTag.class);

??? Parser parser = new Parser();

??? parser.setURL(”http://www.google.com”);

??? parser.setEncoding(parser.getEncoding());

??? NodeList list = parser.extractAllNodesThatMatch(filter);

??? for (int i = 0; i < list.size(); i++) {

??????? LinkTag node = (LinkTag) list.elementAt(i);

??????? System.out.println(”testLinkTag() Link is :” + node.extractLink());

??? }

} catch (Exception e) {

??? e.printStackTrace();

}

? 采用org.htmlparser.beans方式

另外htmlparser 還在org.htmlparser.beans中對一些常用的方法進行了封裝,以簡化操作,例如:

Parser parser = new Parser();

LinkBean linkBean = new LinkBean();

linkBean.setURL(”http://www.google.com”);

URL[] urls = linkBean.getLinks();

for (int i = 0; i < urls.length; i++) {

??? URL url = urls[i];

??? System.out.println (”testLinkBean() -url? is :” + url);

}

?

Htmlparser關鍵包結構說明

??? htmlparser其實核心代碼并不多,好好研究一下其代碼,彌補文檔不足的問題。同時htmlparser的代碼注釋和單元測試用例還是很齊全的,也有助于了解htmlparser的用法。

?

3.1org.htmlparser

??? 定義了htmlparser的一些基礎類。其中最為重要的是Parser類。

??? Parserhtmlparser的最核心的類,其構造函數提供了如下:Parser.createParser (String html, String charset) Parser ()Parser (Lexer lexer, ParserFeedback fb)Parser (URLConnection connection, ParserFeedback fb)Parser (String resource, ParserFeedback feedback) Parser (String resource)

? 各構造函數的具體用法及含義可以查看其代碼,很容易理解。

? Parser常用的幾個方法:

??????? ? elements獲取元素

??? Parser parser = new Parser (”http://www.google.com”);

??? for (NodeIterator i = parser.elements (); i.hasMoreElements (); )

????? processMyNodes (i.nextNode ());

??????? parse (NodeFilter filter):通過NodeFilter方式獲取

??????? visitAllNodesWith (NodeVisitor visitor):通過Nodevisitor方式

??????? extractAllNodesThatMatch (NodeFilter filter):通過NodeFilter方式

3.2org.htmlparser.beans

??? VisitorFilter的方法進行了封裝,定義了針對一些常用html元素操作的bean,簡化對常用元素的提取操作。

??? 包括:FilterBeanHTMLLinkBeanHTMLTextBeanLinkBeanStringBeanBeanyBaby等。

3.3org.htmlparser.nodes

??? 定義了基礎的node,包括:AbstractNodeRemarkNodeTagNodeTextNode等。

3.4org.htmlparser.tags

??? 定義了htmlparser的各種tag

3.5org.htmlparser.filters

??? 定義了htmlparser所提供的各種filter,主要通過extractAllNodesThatMatch (NodeFilter filter)來對html頁面指定類型的元素進行過濾,包括:AndFilterCssSelectorNodeFilterHasAttributeFilterHasChildFilterHasParentFilterHasSiblingFilterIsEqualFilterLinkRegexFilterLinkStringFilterNodeClassFilterNotFilterOrFilterRegexFilterStringFilterTagNameFilterXorFilter

3.6org.htmlparser.visitors

?? 定義了htmlparser所提供的各種visitor,主要通過visitAllNodesWith (NodeVisitor visitor)來對html頁面元素進行遍歷,包括:HtmlPageLinkFindingVisitorNodeVisitorObjectFindingVisitorStringFindingVisitorTagFindingVisitorTextExtractingVisitorUrlModifyingVisitor

?

3.7org.htmlparser.parserapplications

?? 定義了一些實用的工具,包括LinkExtractorSiteCapturerStringExtractorWikiCapturer,這幾個類也可以作為htmlparser使用樣例。

3.8org.htmlparser.tests

?? 對各種功能的單元測試用例,也可以作為htmlparser使用的樣例。

轉載于:https://www.cnblogs.com/answeryi/archive/2009/11/02/1594543.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的HtmlParser 简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。