使用Heritrix抓取到自己所需的网页后,还需要对网页中的内容进行分类等操作,这个时候就需要用到htmlparser,但是使用htmlparser并不是那么容易!因为相关的文档比较少,很多更能需要开发者自己去摸索,去发掘!

  不过这里给大家提供一个比较好的网站(htmlparser的API):http://tool.oschina.net/apidocs/apidoc?api=HTMLParser,这个API是英文版的,英语不好的这时就要逼迫自己看下去了。

  HTMLParser的核心模块是org.htmlparser.Parser类,这个类实际完成了对于HTML页面的分析工作。这个类有下面几个构造函数:

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;

和一个静态类

public static Parser createParser (String html, String charset);

  对于大多数使用者来说,使用最多的是通过一个URLConnection或者一个保存有网页内容的字符串来初始化Parser,或者使用静态函数来生成一个Parser对象。ParserFeedback的代码很简单,是针对调试和跟踪分析过程的,一般不需要改变。而使用Lexer则是一个相对比较高级的话题,放到以后再讨论吧。
  这里比较有趣的一点是,如果需要设置页面的编码方式的话,不使用Lexer就只有静态函数一个方法了。对于大多数中文页面来说,好像这是应该用得比较多的一个方法。

下面是初始化Parser的例子(通过打开一个网页的URL,中间的OpenFile方法是在打开一个本地的html文件时使用的)。

【加载的网页文件:index.html】

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <meta http-equiv = "Content-Type" content = "text/html; charset = utf-8"/>
        <title>百度</title>
        <link href = "a_1.css" rel = "stylesheet" type = "text/css"/>
    </head>
    <body>
        <div  align = "center" class = "photo" >
            <img src = "../image/baidu.PNG" >
        </div>
        <div align = "center" class = "body">
            <table cellpadding="8">
                <td>
                    <a href = "#" target = _blank title = "欢迎来到&#10百度网站">新闻</a>
                </td>
                <td>
                    <font color = "black">网页</font>
                </td>
                <td>
                    <a href = "#" target = _blank title = "欢迎来到&#10百度网站">贴吧</a>
                </td>
                <td>
                    <a href = "#" target = _blank title = "欢迎来到&#10百度网站">知道</a>
                </td>
                <td>
                    <a href = "#" target = _blank title = "欢迎来到&#10百度网站">音乐</a>
                </td>
                <td>
                    <a href = "#" target = _blank title = "欢迎来到&#10百度网站">图片</a>
                </td>
                <td>
                    <a href = "#" target = _blank title = "欢迎来到&#10百度网站">视频</a>
                </td>
                <td>
                    <a href = "#" target = _blank title = "欢迎来到&#10百度网站">地图</a>
                </td>
            </table>
            <input class = "input" >
        </div>
    </body>

</html>
View Code

相关文章:

  • 2022-12-23
  • 2021-11-27
  • 2022-12-23
  • 2022-12-23
  • 2021-11-19
  • 2021-11-29
  • 2022-01-07
  • 2021-06-26
猜你喜欢
  • 2022-12-23
  • 2021-11-17
  • 2021-12-11
  • 2022-03-04
  • 2021-08-13
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案