def _getElementById_IE67(self, elementId): from DOMImplementation import DOMImplementation def _match_tag(tag, p): return p in tag.attrs and tag.attrs[p] == elementId def match_tag(tag, id): if _match_tag(tag, id): return True return False def filter_tags_id(tag): return tag.has_attr('id') def filter_tags_name(tag): return tag.has_attr('name') for tag in self.doc.find_all(filter_tags_id): if match_tag(tag, 'id'): return DOMImplementation.createHTMLElement(self, tag) for tag in self.doc.find_all(filter_tags_name): if match_tag(tag, 'name'): return DOMImplementation.createHTMLElement(self, tag) return None
def item(self, index): from DOMImplementation import DOMImplementation node = self.nodes[index] return DOMImplementation.createHTMLElement(self.doc, node) if node else None
def createElement(self, tagname): from DOMImplementation import DOMImplementation element = DOMImplementation.createHTMLElement(self, BeautifulSoup.Tag(parser = self.doc, name = tagname)) if self.onCreateElement: self.onCreateElement(element) return element
def namedItem(self, name): from DOMImplementation import DOMImplementation for node in self.nodes: if node.nodeName == name: return DOMImplementation.createHTMLElement(self.doc, node) if node else None return None
def namedItem(self, name): from DOMImplementation import DOMImplementation for node in self.nodes: if node.nodeName == name: return DOMImplementation.createHTMLElement( self.doc, node) if node else None return None
def _querySelector(self, selectors): from DOMImplementation import DOMImplementation try: s = self.tag.select(selectors) except: return None if s and s[0]: return DOMImplementation.createHTMLElement(self, s[0]) return None
def _querySelector(self, selectors): from DOMImplementation import DOMImplementation try: s = self.doc.select(selectors) except: #pylint:disable=bare-except return None if s and s[0]: return DOMImplementation.createHTMLElement(self, s[0]) return None
def _querySelector(self, selectors): from DOMImplementation import DOMImplementation try: s = self.doc.select(selectors) except: return None if s and s[0]: return DOMImplementation.createHTMLElement(self, s[0]) return None
def _querySelector(self, selectors): from DOMImplementation import DOMImplementation try: s = self.tag.select(selectors) except: #pylint:disable=bare-except return None if s and s[0]: return DOMImplementation.createHTMLElement(self, s[0]) return None
def createElement(self, tagname, tagvalue = None): from DOMImplementation import DOMImplementation # Internet Explorer 8 and below also support the syntax # document.createElement('<P>') if log.ThugOpts.Personality.isIE() and log.ThugOpts.Personality.browserVersion < '9.0': if tagname.startswith('<') and '>' in tagname: tagname = tagname[1:].split('>')[0] element = DOMImplementation.createHTMLElement(self, BeautifulSoup.Tag(parser = self.doc, name = tagname)) if self.onCreateElement: self.onCreateElement(element) return element
def getter(self): children = getChildren(self.doc, parts) if xpath == '/html/body[1]' and not children: children = [self.doc] if parts[-1] == 'text()': return "".join(children) m = RE_INDEXED.match(parts[-1]) if m: try: from DOMImplementation import DOMImplementation string.atoi(m.group(2)) return DOMImplementation.createHTMLElement(self.doc, children[0]) if len(children) > 0 else None except ValueError: pass return HTMLCollection(self.doc, children)
def createElement(self, tagname, tagvalue=None): # zomo import re match = re.search('iframe', str(tagname).lower()) if match: log.ThugLogging.add_behavior_warn( "[iframe injection: createElement] %s" % str(tagname)) from DOMImplementation import DOMImplementation # Internet Explorer 8 and below also support the syntax # document.createElement('<P>') if log.ThugOpts.Personality.isIE( ) and log.ThugOpts.Personality.browserVersion < '9.0': if tagname.startswith('<') and '>' in tagname: tagname = tagname[1:].split('>')[0] element = DOMImplementation.createHTMLElement( self, BeautifulSoup.Tag(parser=self.doc, name=tagname)) if self.onCreateElement: self.onCreateElement(element) return element
def _getElementById(self, elementId): from DOMImplementation import DOMImplementation tag = self.doc.find(id = elementId) return DOMImplementation.createHTMLElement(self, tag) if tag else None
def item(self, index): from DOMImplementation import DOMImplementation return DOMImplementation.createHTMLElement( self.doc, self.nodes[index]) if 0 <= index and index < len( self.nodes) else None
def item(self, index): from DOMImplementation import DOMImplementation return DOMImplementation.createHTMLElement(self.doc, self.nodes[index]) if 0 <= index and index < len(self.nodes) else None
def getDOMImplementation(dom = None, **kwds): return DOMImplementation(dom if dom else BeautifulSoup.BeautifulSoup(), **kwds)
def parseString(html, **kwds): return DOMImplementation(BeautifulSoup.BeautifulSoup(html, "html5lib"), **kwds)
def isSupported(self, feature, version): from DOMImplementation import DOMImplementation return DOMImplementation.hasFeature(feature, version)