code: def get(self, tag=None, **kwargs):
      '''
      Recursively searches children for tags of a certain
      type with matching attributes.
      '''
      # Stupid workaround since we can not use dom_tag in the method declaration
      if tag is None: tag = dom_tag
  
      attrs = [(dom_tag.clean_attribute(attr), value)
          for attr, value in kwargs.items()]
  
      results = []
      for child in self.children:
        if (isinstance(tag, basestring) and type(child).__name__ == tag) or \
          (not isinstance(tag, basestring) and isinstance(child, tag)):
  
          if all(child.attributes.get(attribute) == value
              for attribute, value in attrs):
            # If the child is of correct type and has all attributes and values
            # in kwargs add as a result
            results.append(child)
        if isinstance(child, dom_tag):
          # If the child is a dom_tag extend the search down through its children
          results.extend(child.get(tag, **kwargs))
      return resultf get(self, tag=None, **kwargs):
      '''
      Recursively searches children for tags of a certain
      type with matching attributes.
      '''
      # Stupid workaround since we can not use dom_tag in the method declaration
      if tag is None: tag = dom_tag
  
      attrs = [(dom_tag.clean_attribute(attr), value)
          for attr, value in kwargs.items()]
  
      results = []
      for child in self.children:
        if (isinstance(tag, basestring) and type(child).__name__ == tag) or \
          (not isinstance(tag, basestring) and isinstance(child, tag)):
  
          if all(child.attributes.get(attribute) == value
              for attribute, value in attrs):
            # If the child is of correct type and has all attributes and values
            # in kwargs add as a result
            results.append(child)
        if isinstance(child, dom_tag):
          # If the child is a dom_tag extend the search down through its children
          results.extend(child.get(tag, **kwargs))
      return results
docs: Recursively searches children for tags of a certain
      type with matching attributes.