AdvancedHTMLParser (version 6.1.0)
index
/home/media/projects/AdvancedHTMLParser/AdvancedHTMLParser/__init__.py

# Copyright (c) 2015 Tim Savannah All Rights Rserved under LGPLv3. See LICENSE (https://gnu.org/licenses/lgpl-3.0.txt) for more information.
#
# In general below, all "tag names" (body, div, etc) should be lowercase. The parser will lowercase internally. All attribute names (like `id` in id="123") provided to search functions should be lowercase. Values are not lowercase. This is because doing tons of searches, lowercasing every search can quickly build up. Lowercase it once in your code, not every time you call a function.

 
Package Contents
       
Formatter
Parser
SpecialAttributes
Tags
constants
exceptions
test_Attributes

 
Classes
       
html.parser.HTMLParser(_markupbase.ParserBase)
AdvancedHTMLParser.Formatter.AdvancedHTMLFormatter
AdvancedHTMLParser.Parser.AdvancedHTMLParser
AdvancedHTMLParser.Parser.IndexedAdvancedHTMLParser

 
class AdvancedHTMLFormatter(html.parser.HTMLParser)
    A formatter for HTML. Note this does not understand CSS, so if you are enabling preformatted text based on css rules, it will not work.
It does, however, understand "pre", "code" and "script" tags and will not try to format their contents.
 
 
Method resolution order:
AdvancedHTMLFormatter
html.parser.HTMLParser
_markupbase.ParserBase
builtins.object

Methods defined here:
__init__(self, indent=' ', encoding='utf-8')
Create a formatter.
 
@param indent - Either a space/tab/newline that represents one level of indent, or an integer to use that number of spaces
@param encoding - Use this encoding for the document.
feed(self, contents)
feed - Load contents
 
@param contents - HTML contents
getHTML(self)
getHTML - Get the full HTML as contained within this tree, converted to  valid XHTML
    @returns - String
getRoot(self)
getRoot - returns the root Tag 
    @return - AdvancedTag at root. If you provided multiple root nodes, this will be a "holder" with tagName value as constants.INVISIBLE_ROOT_TAG
getRootNodes(self)
getRootNodes - Gets all objects at the "root" (first level; no parent). Use this if you may have multiple roots (not children of <html>)
    Use this method to get objects, for example, in an AJAX request where <html> may not be your root.
 
    Note: If there are multiple root nodes (i.e. no <html> at the top), getRoot will return a special tag. This function automatically
      handles that, and returns all root nodes.
 
    @return list<AdvancedTag> - A list of AdvancedTags which are at the root level of the tree.
handle_charref(self, charRef)
Internal for parsing
handle_comment(self, comment)
Internal for parsing
handle_data(self, data)
handle_data - Internal for parsing
handle_decl(self, decl)
Internal for parsing
handle_endtag(self, tagName)
handle_endtag - Internal for parsing
handle_entityref(self, entity)
Internal for parsing
handle_startendtag(self, tagName, attributeList)
handle_startendtag - Internal for parsing
handle_starttag(self, tagName, attributeList, isSelfClosing=False)
handle_starttag - Internal for parsing
parseFile(self, filename)
parseFile - Parses a file and creates the DOM tree and indexes
 
    @param filename <str/file> - A string to a filename or a file object. If file object, it will not be closed, you must close.
parseStr(self, html)
parseStr - Parses a string and creates the DOM tree and indexes.
 
    @param html <str> - valid HTML
setRoot(self, root)
setRoot - Sets the root node, and reprocesses the indexes
 
@param root - AdvancedTag to be new root
unknown_decl(self, decl)
Internal for parsing

Methods inherited from html.parser.HTMLParser:
check_for_whole_start_tag(self, i)
# Internal -- check to see if we have a complete starttag; return end
# or -1 if incomplete.
clear_cdata_mode(self)
close(self)
Handle any buffered data.
error(self, message)
get_starttag_text(self)
Return full source of start tag: '<...>'.
goahead(self, end)
# Internal -- handle data as far as reasonable.  May leave state
# and data to be processed by a subsequent call.  If 'end' is
# true, force handling all data as if followed by EOF marker.
handle_pi(self, data)
# Overridable -- handle processing instruction
parse_bogus_comment(self, i, report=1)
# Internal -- parse bogus comment, return length or -1 if not terminated
# see http://www.w3.org/TR/html5/tokenization.html#bogus-comment-state
parse_endtag(self, i)
# Internal -- parse endtag, return end or -1 if incomplete
parse_html_declaration(self, i)
# Internal -- parse html declarations, return length or -1 if not terminated
# See w3.org/TR/html5/tokenization.html#markup-declaration-open-state
# See also parse_declaration in _markupbase
parse_pi(self, i)
# Internal -- parse processing instr, return end or -1 if not terminated
parse_starttag(self, i)
# Internal -- handle starttag, return end or -1 if not terminated
reset(self)
Reset this instance.  Loses all unprocessed data.
set_cdata_mode(self, elem)
unescape(self, s)
# Internal -- helper to remove special character quoting

Data and other attributes inherited from html.parser.HTMLParser:
CDATA_CONTENT_ELEMENTS = ('script', 'style')

Methods inherited from _markupbase.ParserBase:
getpos(self)
Return current line number and offset.
parse_comment(self, i, report=1)
# Internal -- parse comment, return length or -1 if not terminated
parse_declaration(self, i)
# Internal -- parse declaration (for use by subclasses).
parse_marked_section(self, i, report=1)
# Internal -- parse a marked section
# Override this to handle MS-word extension syntax <![if word]>content<![endif]>
updatepos(self, i, j)
# Internal -- update line number and offset.  This should be
# called for each piece of data exactly once, in order -- in other
# words the concatenation of all the input strings to this
# function should be exactly the entire input.

Data descriptors inherited from _markupbase.ParserBase:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class AdvancedHTMLParser(html.parser.HTMLParser)
    AdvancedHTMLParser - This class parses and allows searching of  documents
 
 
Method resolution order:
AdvancedHTMLParser
html.parser.HTMLParser
_markupbase.ParserBase
builtins.object

Methods defined here:
__init__(self, filename=None, encoding='utf-8')
__init__ - Creates an Advanced HTML parser object. For read-only parsing, consider IndexedAdvancedHTMLPaser for faster searching.
 
    @param filename <str>         - Optional filename to parse. Otherwise use parseFile or parseStr methods.
    @param encoding <str>         - Specifies the document encoding. Default utf-8
feed(self, contents)
feed - Feed contents. Use  parseStr or parseFile instead.
 
@param contents - Contents
getElementById(self, _id, root='root')
getElementById - Searches and returns the first (should only be one) element with the given ID.
   
    @param id <str> - A string of the id attribute.
    @param root <AdvancedTag/'root'> - Search starting at a specific node, if provided. if string 'root' [default], the root of the parsed tree will be used.
getElementsByAttr(self, attrName, attrValue, root='root')
getElementsByAttr - Searches the full tree for elements with a given attribute name and value combination. This is always a full scan.
   
    @param attrName <lowercase str> - A lowercase attribute name
    @param attrValue <str> - Expected value of attribute
    @param root <AdvancedTag/'root'> - Search starting at a specific node, if provided. if string 'root', the root of the parsed tree will be used.
getElementsByClassName(self, className, root='root')
getElementsByClassName - Searches and returns all elements containing a given class name.
   
    @param className <str> - A one-word class name
    @param root <AdvancedTag/'root'> - Search starting at a specific node, if provided. if string 'root' [default], the root of the parsed tree will be used.
getElementsByName(self, name, root='root')
getElementsByName - Searches and returns all elements with a specific name.
   
    @param name <str> - A string of the name attribute
    @param root <AdvancedTag/'root'> - Search starting at a specific node, if provided. if string 'root' [default], the root of the parsed tree will be used.
getElementsByTagName(self, tagName, root='root')
getElementsByTagName - Searches and returns all elements with a specific tag name.
   
    @param tagName <lowercase str> - A lowercase string of the tag name. 
    @param root <AdvancedTag/'root'> - Search starting at a specific node, if provided. if string 'root', the root of the parsed tree will be used.
getElementsWithAttrValues(self, attrName, values, root='root')
getElementsWithAttrValues - Returns elements with an attribute, named by #attrName contains one of the values in the list, #values
getFormattedHTML(self, indent=' ')
getFormattedHTML - Get formatted and xhtml of this document
 
@param indent - space/tab/newline of each level of indent, or integer for how many spaces per level
 
@return - Formatted html as string
getHTML(self)
getHTML - Get the full HTML as contained within this tree
    @returns - String
getRoot(self)
getRoot - returns the root Tag 
    @return Tag
getRootNodes(self)
getRootNodes - Gets all objects at the "root" (first level; no parent). Use this if you may have multiple roots (not children of <html>)
    Use this method to get objects, for example, in an AJAX request where <html> may not be your root.
 
    Note: If there are multiple root nodes (i.e. no <html> at the top), getRoot will return a special tag. This function automatically
      handles that, and returns all root nodes.
 
    @return list<AdvancedTag> - A list of AdvancedTags which are at the root level of the tree.
handle_charref(self, charRef)
Internal for parsing
handle_comment(self, comment)
Internal for parsing
handle_data(self, data)
Internal for parsing
handle_decl(self, decl)
Internal for parsing
handle_endtag(self, tagName)
Internal for parsing
handle_entityref(self, entity)
Internal for parsing
handle_startendtag(self, tagName, attributeList)
Internal for parsing
handle_starttag(self, tagName, attributeList, isSelfClosing=False)
Internal for parsing
parseFile(self, filename)
parseFile - Parses a file and creates the DOM tree and indexes
 
    @param filename <str/file> - A string to a filename or a file object. If file object, it will not be closed, you must close.
parseStr(self, html)
parseStr - Parses a string and creates the DOM tree and indexes.
 
    @param html <str> - valid HTML
setRoot(self, root)
Sets the root node, and reprocesses the indexes
unknown_decl(self, decl)
Internal for parsing

Methods inherited from html.parser.HTMLParser:
check_for_whole_start_tag(self, i)
# Internal -- check to see if we have a complete starttag; return end
# or -1 if incomplete.
clear_cdata_mode(self)
close(self)
Handle any buffered data.
error(self, message)
get_starttag_text(self)
Return full source of start tag: '<...>'.
goahead(self, end)
# Internal -- handle data as far as reasonable.  May leave state
# and data to be processed by a subsequent call.  If 'end' is
# true, force handling all data as if followed by EOF marker.
handle_pi(self, data)
# Overridable -- handle processing instruction
parse_bogus_comment(self, i, report=1)
# Internal -- parse bogus comment, return length or -1 if not terminated
# see http://www.w3.org/TR/html5/tokenization.html#bogus-comment-state
parse_endtag(self, i)
# Internal -- parse endtag, return end or -1 if incomplete
parse_html_declaration(self, i)
# Internal -- parse html declarations, return length or -1 if not terminated
# See w3.org/TR/html5/tokenization.html#markup-declaration-open-state
# See also parse_declaration in _markupbase
parse_pi(self, i)
# Internal -- parse processing instr, return end or -1 if not terminated
parse_starttag(self, i)
# Internal -- handle starttag, return end or -1 if not terminated
reset(self)
Reset this instance.  Loses all unprocessed data.
set_cdata_mode(self, elem)
unescape(self, s)
# Internal -- helper to remove special character quoting

Data and other attributes inherited from html.parser.HTMLParser:
CDATA_CONTENT_ELEMENTS = ('script', 'style')

Methods inherited from _markupbase.ParserBase:
getpos(self)
Return current line number and offset.
parse_comment(self, i, report=1)
# Internal -- parse comment, return length or -1 if not terminated
parse_declaration(self, i)
# Internal -- parse declaration (for use by subclasses).
parse_marked_section(self, i, report=1)
# Internal -- parse a marked section
# Override this to handle MS-word extension syntax <![if word]>content<![endif]>
updatepos(self, i, j)
# Internal -- update line number and offset.  This should be
# called for each piece of data exactly once, in order -- in other
# words the concatenation of all the input strings to this
# function should be exactly the entire input.

Data descriptors inherited from _markupbase.ParserBase:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class IndexedAdvancedHTMLParser(AdvancedHTMLParser)
    An AdvancedHTMLParser that indexes for much much faster searching. If you are doing searching/validation, this is your bet.
  If you are writing/modifying, you may use this, but be sure to call reindex() after changes.
 
 
Method resolution order:
IndexedAdvancedHTMLParser
AdvancedHTMLParser
html.parser.HTMLParser
_markupbase.ParserBase
builtins.object

Methods defined here:
__init__(self, filename=None, encoding='utf-8', indexIDs=True, indexNames=True, indexClassNames=True, indexTagNames=True)
__init__ - Creates an Advanced HTML parser object, with specific indexing settings.
 
    For the various index* arguments, if True the index will be collected and use (if useIndex=True [default] on get* function)
 
    @param filename <str>         - Optional filename to parse. Otherwise use parseFile or parseStr methods.
    @param encoding <str> - Specifies the document encoding. Default utf-8
    @param indexIDs <bool>        - True to create an index for getElementByID method.  <default True>
    @param indexNames <bool>      - True to create an index for getElementsByName method  <default True>
    @param indexClassNames <bool> - True to create an index for getElementsByClassName method. <default True>
    @param indexTagNames <bool>   - True to create an index for tag names. <default True>
 
    For indexing other attributes, see the more generic addIndexOnAttribute
addIndexOnAttribute(self, attributeName)
addIndexOnAttribute - Add an index for an arbitrary attribute. This will be used by the getElementsByAttr function.
    You should do this prior to parsing, or call reindex. Otherwise it will be blank. "name" and "id" will have no effect.
 
    @param attributeName <lowercase str> - An attribute name. Will be lowercased.
disableIndexing(self)
disableIndexing - Disables indexing. Consider using plain AdvancedHTMLParser class.
  Maybe useful in some scenarios where you want to parse, add a ton of elements, then index
  and do a bunch of searching.
getElementById(self, _id, root='root', useIndex=True)
getElementById - Searches and returns the first (should only be one) element with the given ID.
   
    @param id <str> - A string of the id attribute.
    @param root <AdvancedTag/'root'> - Search starting at a specific node, if provided. if string 'root', the root of the parsed tree will be used.
    @param useIndex <bool> If useIndex is True and ids are indexed [see constructor] only the index will be used. Otherwise a full search is performed.
getElementsByAttr(self, attrName, attrValue, root='root', useIndex=True)
getElementsByAttr - Searches the full tree for elements with a given attribute name and value combination. If you want multiple potential values, see getElementsWithAttrValues
   If you want an index on a random attribute, use the addIndexOnAttribute function.
   
    @param attrName <lowercase str> - A lowercase attribute name
    @param attrValue <str> - Expected value of attribute
    @param root <AdvancedTag/'root'> - Search starting at a specific node, if provided. if string 'root', the root of the parsed tree will be used.
    @param useIndex <bool> If useIndex is True and this specific attribute is indexed [see addIndexOnAttribute] only the index will be used. Otherwise a full search is performed.
getElementsByClassName(self, className, root='root', useIndex=True)
getElementsByClassName - Searches and returns all elements containing a given class name.
   
    @param className <str> - A one-word class name
    @param root <AdvancedTag/'root'> - Search starting at a specific node, if provided. if string 'root', the root of the parsed tree will be used.
    @param useIndex <bool> If useIndex is True and class names are indexed [see constructor] only the index will be used. Otherwise a full search is performed.
getElementsByName(self, name, root='root', useIndex=True)
getElementsByName - Searches and returns all elements with a specific name.
   
    @param name <str> - A string of the name attribute
    @param root <AdvancedTag/'root'> - Search starting at a specific node, if provided. if string 'root', the root of the parsed tree will be used.
    @param useIndex <bool> If useIndex is True and names are indexed [see constructor] only the index will be used. Otherwise a full search is performed.
getElementsByTagName(self, tagName, root='root', useIndex=True)
getElementsByTagName - Searches and returns all elements with a specific tag name.
   
    @param tagName <lowercase str> - A lowercase string of the tag name. 
    @param root <AdvancedTag/'root'> - Search starting at a specific node, if provided. if string 'root', the root of the parsed tree will be used.
    @param useIndex - If True [default] and tag names are set to be indexed [default, see constructor], only the index will be used. If False, all tags
      will be searched.
getElementsWithAttrValues(self, attrName, values, root='root', useIndex=True)
getElementsWithAttrValues - Returns elements with an attribute matching one of several values. For a single name/value combination, see getElementsByAttr
 
    @param attrName <lowercase str> - A lowercase attribute name
    @param attrValues list<str> - List of expected values of attribute
    @param root <AdvancedTag/'root'> - Search starting at a specific node, if provided. if string 'root', the root of the parsed tree will be used.
    @param useIndex <bool> If useIndex is True and this specific attribute is indexed [see addIndexOnAttribute] only the index will be used. Otherwise a full search is performed.
handle_starttag(self, tagName, attributeList, isSelfClosing=False)
internal for parsing
reindex(self, newIndexIDs=None, newIndexNames=None, newIndexClassNames=None, newIndexTagNames=None)
reindex - reindex the tree. Optionally, change what fields are indexed.
 
    @param newIndexIDs <bool/None>        - None to leave same, otherwise new value to index IDs
    @parma newIndexNames <bool/None>      - None to leave same, otherwise new value to index names
    @param newIndexClassNames <bool/None> - None to leave same, otherwise new value to index class names
    @param newIndexTagNames <bool/None>   - None to leave same, otherwise new value to index tag names
removeIndexOnAttribute(self, attributeName)
    removeIndexOnAttribute - Remove an attribute from indexing (for getElementsByAttr function) and remove indexed data.
 
@param attributeName <lowercase str> - An attribute name. Will be lowercased. "name" and "id" will have no effect.
setRoot(self, root)
Sets the root node, and reprocesses the indexes
 
@param root - AdvancedTag for root

Methods inherited from AdvancedHTMLParser:
feed(self, contents)
feed - Feed contents. Use  parseStr or parseFile instead.
 
@param contents - Contents
getFormattedHTML(self, indent=' ')
getFormattedHTML - Get formatted and xhtml of this document
 
@param indent - space/tab/newline of each level of indent, or integer for how many spaces per level
 
@return - Formatted html as string
getHTML(self)
getHTML - Get the full HTML as contained within this tree
    @returns - String
getRoot(self)
getRoot - returns the root Tag 
    @return Tag
getRootNodes(self)
getRootNodes - Gets all objects at the "root" (first level; no parent). Use this if you may have multiple roots (not children of <html>)
    Use this method to get objects, for example, in an AJAX request where <html> may not be your root.
 
    Note: If there are multiple root nodes (i.e. no <html> at the top), getRoot will return a special tag. This function automatically
      handles that, and returns all root nodes.
 
    @return list<AdvancedTag> - A list of AdvancedTags which are at the root level of the tree.
handle_charref(self, charRef)
Internal for parsing
handle_comment(self, comment)
Internal for parsing
handle_data(self, data)
Internal for parsing
handle_decl(self, decl)
Internal for parsing
handle_endtag(self, tagName)
Internal for parsing
handle_entityref(self, entity)
Internal for parsing
handle_startendtag(self, tagName, attributeList)
Internal for parsing
parseFile(self, filename)
parseFile - Parses a file and creates the DOM tree and indexes
 
    @param filename <str/file> - A string to a filename or a file object. If file object, it will not be closed, you must close.
parseStr(self, html)
parseStr - Parses a string and creates the DOM tree and indexes.
 
    @param html <str> - valid HTML
unknown_decl(self, decl)
Internal for parsing

Methods inherited from html.parser.HTMLParser:
check_for_whole_start_tag(self, i)
# Internal -- check to see if we have a complete starttag; return end
# or -1 if incomplete.
clear_cdata_mode(self)
close(self)
Handle any buffered data.
error(self, message)
get_starttag_text(self)
Return full source of start tag: '<...>'.
goahead(self, end)
# Internal -- handle data as far as reasonable.  May leave state
# and data to be processed by a subsequent call.  If 'end' is
# true, force handling all data as if followed by EOF marker.
handle_pi(self, data)
# Overridable -- handle processing instruction
parse_bogus_comment(self, i, report=1)
# Internal -- parse bogus comment, return length or -1 if not terminated
# see http://www.w3.org/TR/html5/tokenization.html#bogus-comment-state
parse_endtag(self, i)
# Internal -- parse endtag, return end or -1 if incomplete
parse_html_declaration(self, i)
# Internal -- parse html declarations, return length or -1 if not terminated
# See w3.org/TR/html5/tokenization.html#markup-declaration-open-state
# See also parse_declaration in _markupbase
parse_pi(self, i)
# Internal -- parse processing instr, return end or -1 if not terminated
parse_starttag(self, i)
# Internal -- handle starttag, return end or -1 if not terminated
reset(self)
Reset this instance.  Loses all unprocessed data.
set_cdata_mode(self, elem)
unescape(self, s)
# Internal -- helper to remove special character quoting

Data and other attributes inherited from html.parser.HTMLParser:
CDATA_CONTENT_ELEMENTS = ('script', 'style')

Methods inherited from _markupbase.ParserBase:
getpos(self)
Return current line number and offset.
parse_comment(self, i, report=1)
# Internal -- parse comment, return length or -1 if not terminated
parse_declaration(self, i)
# Internal -- parse declaration (for use by subclasses).
parse_marked_section(self, i, report=1)
# Internal -- parse a marked section
# Override this to handle MS-word extension syntax <![if word]>content<![endif]>
updatepos(self, i, j)
# Internal -- update line number and offset.  This should be
# called for each piece of data exactly once, in order -- in other
# words the concatenation of all the input strings to this
# function should be exactly the entire input.

Data descriptors inherited from _markupbase.ParserBase:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
Data
        __all__ = ['AdvancedHTMLParser', 'IndexedAdvancedHTMLParser', 'AdvancedHTMLFormatter']
__version_tuple__ = ('6', '1', '0')