Logo Search packages:      
Sourcecode: calibre version File versions

calibre::ebooks::BeautifulSoup::BeautifulSoup Class Reference

Inheritance diagram for calibre::ebooks::BeautifulSoup::BeautifulSoup:

calibre::ebooks::BeautifulSoup::BeautifulStoneSoup calibre::ebooks::BeautifulSoup::Tag calibre::ebooks::BeautifulSoup::PageElement calibre::ebooks::BeautifulSoup::ICantBelieveItsBeautifulSoup calibre::ebooks::BeautifulSoup::MinimalSoup

List of all members.


Detailed Description

This parser knows the following facts about HTML:

* Some tags have no closing tag and should be interpreted as being
  closed as soon as they are encountered.

* The text inside some tags (ie. 'script') may contain tags which
  are not really part of the document and which should be parsed
  as text, not tags. If you want to parse the text as tags, you can
  always fetch it and parse it explicitly.

* Tag nesting rules:

  Most tags can't be nested at all. For instance, the occurance of
  a <p> tag should implicitly close the previous <p> tag.

   <p>Para1<p>Para2
    should be transformed into:
   <p>Para1</p><p>Para2

  Some tags can be nested arbitrarily. For instance, the occurance
  of a <blockquote> tag should _not_ implicitly close the previous
  <blockquote> tag.

   Alice said: <blockquote>Bob said: <blockquote>Blah
    should NOT be transformed into:
   Alice said: <blockquote>Bob said: </blockquote><blockquote>Blah

  Some tags can be nested, but the nesting is reset by the
  interposition of other tags. For instance, a <tr> tag should
  implicitly close the previous <tr> tag within the same <table>,
  but not close a <tr> tag in another table.

   <table><tr>Blah<tr>Blah
    should be transformed into:
   <table><tr>Blah</tr><tr>Blah
    but,
   <tr>Blah<table><tr>Blah
    should NOT be transformed into
   <tr>Blah<table></tr><tr>Blah

Differing assumptions about tag nesting rules are a major source
of problems with the BeautifulSoup class. If BeautifulSoup is not
treating as nestable a tag your page author treats as nestable,
try ICantBelieveItsBeautifulSoup, MinimalSoup, or
BeautifulStoneSoup before writing your own subclass.

Definition at line 1384 of file BeautifulSoup.py.


Public Member Functions

def __getattr__
def __init__
def __init__
def __init__
def append
def close
def convert_charref
def convert_codepoint
def convert_entityref
def endData
def error
def extract
def feed
def findAllNext
def findAllPrevious
def findNext
def findNextSibling
def findNextSiblings
def findParent
def findParents
def findPrevious
def findPreviousSibling
def findPreviousSiblings
def finish_endtag
def finish_shorttag
def finish_starttag
def get_starttag_text
def goahead
def handle_charref
def handle_comment
def handle_data
def handle_decl
def handle_endtag
def handle_entityref
def handle_pi
def handle_starttag
def insert
def isSelfClosingTag
def nextGenerator
def nextSiblingGenerator
def parentGenerator
def parse_declaration
def parse_endtag
def parse_pi
def parse_starttag
def popTag
def previousGenerator
def previousSiblingGenerator
def pushTag
def replaceWith
def report_unbalanced
def reset
def setliteral
def setnomoretags
def setup
def start_meta
def substituteEncoding
def toEncoding
def unknown_charref
def unknown_endtag
def unknown_entityref
def unknown_starttag
def unknown_starttag

Public Attributes

 convertEntities
 convertHTMLEntities
 convertXMLEntities
 currentData
 currentTag
 declaredHTMLEncoding
 escapeUnrecognizedEntities
 fromEncoding
 hidden
 instanceSelfClosingTags
 lasttag
 literal
 markup
 markupMassage
 next
 nextSibling
 nomoretags
 originalEncoding
 parent
 parseOnlyThese
 previous
 previousSibling
 quoteStack
 rawdata
 smartQuotesTo
 stack
 tagStack
 verbose

Static Public Attributes

 ALL_ENTITIES = XHTML_ENTITIES
tuple CHARSET_RE = re.compile("((^|;)\s*charset=)([^;]*)")
tuple entity_or_charref
 entitydefs = \
 fetchNextSiblings = findNextSiblings
 fetchParents = findParents
 fetchPrevious = findAllPrevious
 fetchPreviousSiblings = findPreviousSiblings
string HTML_ENTITIES = "html"
list MARKUP_MASSAGE
list NESTABLE_BLOCK_TAGS = ['blockquote', 'div', 'fieldset', 'ins', 'del']
list NESTABLE_INLINE_TAGS
dictionary NESTABLE_LIST_TAGS
dictionary NESTABLE_TABLE_TAGS
tuple NESTABLE_TAGS
list NON_NESTABLE_BLOCK_TAGS = ['address', 'form', 'p', 'pre']
dictionary QUOTE_TAGS = {'script' : None, 'textarea' : None}
tuple RESET_NESTING_TAGS
string ROOT_TAG_NAME = u'[document]'
tuple SELF_CLOSING_TAGS
dictionary STRIP_ASCII_SPACES = { 9: None, 10: None, 12: None, 13: None, 32: None, }
string XHTML_ENTITIES = "xhtml"
string XML_ENTITIES = "xml"

The documentation for this class was generated from the following file:

Generated by  Doxygen 1.6.0   Back to index