code: def parse_impl(self):
          
  
          # Cast to str to ensure not unicode under Python 2, as the parser
          # doesn't like that.
          parser = XMLParser(encoding=str('UTF-8'))
          element_iter = ET.iterparse(self.handle, events=("start", "end"), parser=parser)
          for pos, element in element_iter:
              tag, class_attr = _tag_and_class_attr(element)
              if tag == "h1" and pos == "end":
                  if not self.user:
                      self.user = element.text.strip()
              elif tag == "div" and "thread" in class_attr and pos == "start":
                  participants = self.parse_participants(element)
                  thread = self.parse_thread(participants, element_iter, True)
                  self.save_thread(thread)
docs: Parses the HTML content as a stream. This is far less memory
          intensive than loading the entire HTML file into memory, like
          BeautifulSoup does.