GNU Info

Info Node: (python2.1-lib.info)htmllib

(python2.1-lib.info)htmllib


Next: htmlentitydefs Prev: sgmllib Up: Structured Markup Processing Tools
Enter node , (file) or (file)node

A parser for HTML documents
===========================

A parser for HTML documents.

This module defines a class which can serve as a base for parsing text
files formatted in the HyperText Mark-up Language (HTML).  The class is
not directly concerned with I/O -- it must be provided with input in
string form via a method, and makes calls to methods of a "formatter"
object in order to produce output.  The `HTMLParser' class is designed
to be used as a base class for other classes in order to add
functionality, and allows most of its methods to be extended or
overridden.  In turn, this class is derived from and extends the
`SGMLParser' class defined in module `sgmllib' .  The `HTMLParser'
implementation supports the HTML 2.0 language as described in RFC 1866
.  Two implementations of formatter objects are provided in the
`formatter'  module; refer to the documentation for that module for
information on the formatter interface.

The following is a summary of the interface defined by
`sgmllib.SGMLParser':

   * The interface to feed data to an instance is through the `feed()'
     method, which takes a string argument.  This can be called with as
     little or as much text at a time as desired; `p.feed(a);
     p.feed(b)' has the same effect as `p.feed(a+b)'.  When the data
     contains complete HTML tags, these are processed immediately;
     incomplete elements are saved in a buffer.  To force processing of
     all unprocessed data, call the `close()' method.

     For example, to parse the entire contents of a file, use:
          parser.feed(open('myfile.html').read())
          parser.close()

   * The interface to define semantics for HTML tags is very simple:
     derive a class and define methods called `start_TAG()',
     `end_TAG()', or `do_TAG()'.  The parser will call these at
     appropriate moments: `start_TAG' or `do_TAG()' is called when an
     opening tag of the form `<TAG ...>' is encountered; `end_TAG()' is
     called when a closing tag of the form `<TAG>' is encountered.  If
     an opening tag requires a corresponding closing tag, like `<H1>'
     ... `</H1>', the class should define the `start_TAG()' method; if
     a tag requires no closing tag, like `<P>', the class should define
     the `do_TAG()' method.


The module defines a single class:

`HTMLParser(formatter)'
     This is the basic HTML parser class.  It supports all entity names
     required by the HTML 2.0 specification (RFC 1866 ).  It also
     defines handlers for all HTML 2.0 and many HTML 3.0 and 3.2
     elements.

See also:
     Note: htmlentitydefs Definition of replacement text for HTML 2.0
     entities.  Note: sgmllib Base class for `HTMLParser'.

HTMLParser Objects

automatically generated by info2www version 1.2.2.9