`

[转][htmlparser]htmlparser使用例子(全)

阅读更多

from : http://gcgmh.iteye.com/blog/474093

 

 

  1. import java.net.URL;  
  2.   
  3. import junit.framework.TestCase;  
  4.   
  5. import org.apache.log4j.Logger;  
  6. import org.htmlparser.Node;  
  7. import org.htmlparser.NodeFilter;  
  8. import org.htmlparser.Parser;  
  9. import org.htmlparser.Tag;  
  10. import org.htmlparser.beans.LinkBean;  
  11. import org.htmlparser.filters.NodeClassFilter;  
  12. import org.htmlparser.filters.OrFilter;  
  13. import org.htmlparser.filters.TagNameFilter;  
  14. import org.htmlparser.tags.HeadTag;  
  15. import org.htmlparser.tags.ImageTag;  
  16. import org.htmlparser.tags.InputTag;  
  17. import org.htmlparser.tags.LinkTag;  
  18. import org.htmlparser.tags.OptionTag;  
  19. import org.htmlparser.tags.SelectTag;  
  20. import org.htmlparser.tags.TableColumn;  
  21. import org.htmlparser.tags.TableRow;  
  22. import org.htmlparser.tags.TableTag;  
  23. import org.htmlparser.tags.TitleTag;  
  24. import org.htmlparser.util.NodeIterator;  
  25. import org.htmlparser.util.NodeList;  
  26. import org.htmlparser.util.ParserException;  
  27. import org.htmlparser.visitors.HtmlPage;  
  28. import org.htmlparser.visitors.NodeVisitor;  
  29. import org.htmlparser.visitors.ObjectFindingVisitor;  
  30.   
  31. public class T extends TestCase {  
  32.   
  33.   private static final Logger logger = Logger.getLogger(T.class);  
  34.   
  35.   public T(String name) {  
  36.     super(name);  
  37.   }  
  38.   
  39.   /* 
  40.    * 测试ObjectFindVisitor的用法 
  41.    */  
  42.   public void testImageVisitor() {  
  43.     try {  
  44.       ImageTag imgLink;  
  45.       ObjectFindingVisitor visitor = new ObjectFindingVisitor(ImageTag.class);  
  46.       Parser parser = new Parser();  
  47.       parser.setURL("http://www.google.com");  
  48.       parser.setEncoding(parser.getEncoding());  
  49.       parser.visitAllNodesWith(visitor);  
  50.       Node[] nodes = visitor.getTags();  
  51.       for (int i = 0; i < nodes.length; i++) {  
  52.         imgLink = (ImageTag) nodes[i];  
  53.         logger.fatal("testImageVisitor() ImageURL = " + imgLink.getImageURL());  
  54.         logger.fatal("testImageVisitor() ImageLocation = " + imgLink.extractImageLocn());  
  55.         logger.fatal("testImageVisitor() SRC = " + imgLink.getAttribute("SRC"));  
  56.       }  
  57.     } catch (Exception e) {  
  58.       e.printStackTrace();  
  59.     }  
  60.   }  
  61.   
  62.   /* 
  63.    * 测试TagNameFilter用法 
  64.    */  
  65.   public void testNodeFilter() {  
  66.     try {  
  67.       NodeFilter filter = new TagNameFilter("IMG");  
  68.       Parser parser = new Parser();  
  69.       parser.setURL("http://www.google.com");  
  70.       parser.setEncoding(parser.getEncoding());  
  71.       NodeList list = parser.extractAllNodesThatMatch(filter);  
  72.       for (int i = 0; i < list.size(); i++) {  
  73.         logger.fatal("testNodeFilter() " + list.elementAt(i).toHtml());  
  74.       }  
  75.     } catch (Exception e) {  
  76.       e.printStackTrace();  
  77.     }  
  78.   
  79.   }  
  80.   
  81.   /* 
  82.    * 测试NodeClassFilter用法 
  83.    */  
  84.   public void testLinkTag() {  
  85.     try {  
  86.   
  87.       NodeFilter filter = new NodeClassFilter(LinkTag.class);  
  88.       Parser parser = new Parser();  
  89.       parser.setURL("http://www.google.com");  
  90.       parser.setEncoding(parser.getEncoding());  
  91.       NodeList list = parser.extractAllNodesThatMatch(filter);  
  92.       for (int i = 0; i < list.size(); i++) {  
  93.         LinkTag node = (LinkTag) list.elementAt(i);  
  94.         logger.fatal("testLinkTag() Link is :" + node.extractLink());  
  95.       }  
  96.     } catch (Exception e) {  
  97.       e.printStackTrace();  
  98.     }  
  99.   
  100.   }  
  101.   
  102.   /* 
  103.    * 测试<link href=" text=’text/css’ rel=’stylesheet’ />用法 
  104.    */  
  105.   public void testLinkCSS() {  
  106.     try {  
  107.   
  108.       Parser parser = new Parser();  
  109.       parser.setInputHTML("<head><title>Link Test</title>"  
  110.           + "<link href=’/test01/css.css' text='text/css' rel='stylesheet' />"  
  111.           + "<link href='/test02/css.css' text='text/css' rel='stylesheet' />" + "</head>"  
  112.           + "<body>");  
  113.       parser.setEncoding(parser.getEncoding());  
  114.   
  115.       for (NodeIterator e = parser.elements(); e.hasMoreNodes();) {  
  116.         Node node = e.nextNode();  
  117.         logger.fatal("testLinkCSS()" + node.getText() + node.getClass());  
  118.   
  119.       }  
  120.     } catch (Exception e) {  
  121.       e.printStackTrace();  
  122.     }  
  123.   }  
  124.   
  125.   /* 
  126.    * 测试OrFilter的用法 
  127.    */  
  128.   public void testOrFilter() {  
  129.     NodeFilter inputFilter = new NodeClassFilter(InputTag.class);  
  130.     NodeFilter selectFilter = new NodeClassFilter(SelectTag.class);  
  131.   
  132.     NodeList nodeList = null;  
  133.   
  134.     try {  
  135.       Parser parser = new Parser();  
  136.       parser  
  137.           .setInputHTML("<head><title>OrFilter Test</title>"  
  138.               + "<link href='/test01/css.css' text='text/css' rel='stylesheet' />"  
  139.               + "<link href='/test02/css.css' text='text/css' rel='stylesheet' />"  
  140. font-size: 1em; margin-top: 0px; margin-righ
    分享到:
    评论
    2 楼 zxhDaniel 2011-08-13  
    满月无双 写道
    testLinkCSS()方法怎么取出 <link href属性的值呢??

    你可以拿到那个link这个节点的对象Node,然后再用getAttribute()这种类似的方法取出来
    1 楼 满月无双 2011-08-10  
    testLinkCSS()方法怎么取出 <link href属性的值呢??

相关推荐

    htmlparser(HTML页面解析)例子

    在本例中,我们将深入探讨如何使用HTMLParser库解析HTML页面,提取所需信息。 首先,我们需要导入Python的`HTMLParser`模块。在Python 3中,这个模块已经被重命名为`html.parser`,因此应该导入`html.parser`,而...

    JAVA htmlparser 使用实例

    本文将通过一个具体的例子来详细介绍如何在Java中使用`HtmlParser`库进行HTML文档的解析。 #### 示例背景 假设我们正在开发一款Android应用,该应用需要从HTML文件中提取特定的数据。这里我们将使用`HtmlParser`库...

    HTMLParser 使用文档、jar包、以及源码

    1. **例子.txt**:这是一个包含使用HTMLParser库的实际示例代码的文本文件。开发者可以通过阅读和运行这些示例来快速理解如何在自己的项目中应用HTMLParser。 2. **HTMLParser-2.0-SNAPSHOT-doc.zip**:这是...

    HtmlParser 实现简易爬虫

    在本场景中,我们讨论如何使用HTMLParser库来创建一个基础的网络爬虫,以便从网页上抓取和分析数据。 首先,我们需要了解HTMLParser的基本用法。HTMLParser设计为易于使用,它提供了对HTML元素、属性和文本的访问,...

    HtmlParser c#源码+demo

    6. **示例代码**:描述中提到的"自己写了一个小例子",这通常是演示如何使用HTMLParser库的代码,包含了如何实例化解析器、加载HTML、选择元素、提取数据等基本操作。通过分析这个demo,我们可以快速上手使用这个库...

    java解析html工具htmlparser的jar包及api文档

    在这个例子中,我们首先创建了一个`Parser`实例,然后使用`elements()`方法获取一个节点迭代器。通过迭代器,我们可以遍历HTML文档中的所有节点,并检查它们是否是`&lt;a&gt;`标签。如果是,我们就获取并打印出`href`属性...

    java使用htmlparser提取网页纯文本例子

    【Java使用HTMLParser提取网页纯文本】\n\n在Java编程中,提取网页纯文本是一项常见的任务,尤其在数据抓取、信息分析等领域。HTMLParser是一个强大的Java库,专门用于解析HTML文档,提取其中的文本内容。下面我们将...

    Htmlparser包(带有使用指南和例子)

    在这个压缩包中,包含了HTMLParser的核心程序包、示例代码以及使用指南,这对于理解和应用这个库非常有帮助。 HTMLParser的设计目标是能够处理不规则的HTML,因为实际网页往往不会严格按照HTML标准编写。它允许...

    javajsp中使用HTMLParser

    在JSP中使用HTMLParser,通常的步骤如下: 1. **导入依赖**:首先,你需要在项目中引入HTMLParser的库,可以通过Maven或Gradle添加对应的依赖。 2. **创建解析器**:创建`SAXHTMLParser`或`TagSoupParser`对象,前者...

    node-htmlparser.zip

    在使用node-htmlparser之前,我们需要先将其安装到项目中。这通常通过npm(Node.js包管理器)来完成。在命令行中输入以下命令: ```bash npm install node-htmlparser ``` 一旦安装完毕,我们就可以在代码中导入并...

    网络爬虫htmlparser

    然后,使用HTMLParser解析这个内容,查找包含基金数据的表格标签(如`&lt;table&gt;`),进一步找到表头(`&lt;th&gt;`)和数据单元格(`&lt;td&gt;`)。通过分析表格结构,可以提取出每行数据,并将其转换为"FundTableBean"实例。 在...

    java利用htmlparser抓取网页数据

    以下是一个简单的示例,展示了如何使用HTMLParser抓取网页的标题: ```java import org.htmlparser.Parser; import org.htmlparser.util.NodeIterator; import org.htmlparser.util.ParserException; import org....

    HTMLParser使用详解

    这个例子展示了如何使用HTMLParser找到网页中的所有链接。 五、常见应用场景 - 数据抓取:从网页中提取特定信息,如价格、评论、文章等。 - HTML清理:将不规范的HTML转换为标准格式。 - 内容过滤:移除广告、脚本...

    使用HtmlParser

    接下来,我们创建一个简单的示例来演示如何使用HtmlParser。以下代码展示了如何读取一个HTML文件并打印所有的段落(`&lt;p&gt;`标签)内容: ```java import net.htmlparser.jericho.*; public class HtmlParserExample ...

    使用 HttpClient 和 HtmlParser 实现简易爬虫

    以下是一个简单的例子,展示如何使用 HtmlParser 获取所有链接: ```java Parser parser = new Parser(htmlContent); NodeFilter linkFilter = new TagNameFilter("a"); NodeList links = parser....

    htmlparser1_6

    htmlparser 爬虫(带例子TestParser) 不要数据库操作可以代码注释,经过测试()绝对可以用 例子功能: 1.抓取网址下所有链接(根据一定规则过滤) 2.得到根网页下指定节点的内容(例子是得到div下的...

    HTMLParser

    HTMLParser是一个专为Java开发的库,用于解析HTML文档,尤其适合在没有其他外部依赖的情况下进行HTML内容的处理和...通过阅读源码、文档以及使用提供的例子,开发者可以充分利用这个库来解决各种与HTML处理相关的问题。

    htmlparser实现从网页上抓取数据(+例子)

    本教程将通过实例来讲解如何使用HTMLParser从网页上抓取数据,并简要提及Java解析XML的方法。 首先,我们需要了解HTMLParser的基本工作原理。HTMLParser遵循事件驱动的模型,它会逐行读取HTML源代码,遇到特定的...

    htmlparser实现从网页上抓取数据.doc

    本文将详细讲解如何使用Java的htmlparser库实现网页抓取,并探讨其核心概念和用法。 首先,从给定的代码示例中可以看出,这是一个简单的Java程序,用于从指定的URL抓取HTML内容并将其保存到本地文件。这个程序的...

    htmlparser.jar.zip

    例如,以下是一个简单的使用HTMLParser解析HTML并提取所有链接的例子: ```java import org.htmlparser.Parser; import org.htmlparser.util.NodeList; import org.htmlparser.util.NodeIterator; public class ...

Global site tag (gtag.js) - Google Analytics