docs: def _iter_texts(self, tree):
          """Iterates over texts in given HTML tree."""
          skip = (
              not isinstance(tree, lxml.html.HtmlElement)  # comments, etc.
              or tree.tag in self.skipped_tags
          )
          if not skip:
              if tree.text:
                  yield Text(tree.text, tree, 'text')
              for child in tree:
                  for text in self._iter_texts(child):
                      yield text
          if tree.tail:
              yield Text(tree.tail, tree, 'tail')