', reset=True), [Tag('div'), Tag('p')])
tags = parser.taglist('
', reset=True)
- self.assertEqual(tags, [Tag('p'), Tag('div')])
+ self.assertEqual(tags, [Tag('div'), Tag('p')])
tags = parser.taglist('
', reset=True)
- self.assertEqual(tags, [Tag('div')])
+ self.assertEqual(tags, [Tag('div'), Tag('p')])
tags = parser.taglist('
', reset=True)
self.assertEqual(tags, [Tag('div'), Tag('p')])
diff --git a/yt_dlp/parsing.py b/yt_dlp/parsing.py
index 8fbb4db14..5ecd6b75c 100644
--- a/yt_dlp/parsing.py
+++ b/yt_dlp/parsing.py
@@ -190,7 +190,7 @@ def handle_starttag(self, tag, attrs):
tag_obj = self.Tag(tag, string=self.rawdata, attrs=attrs)
tag_obj.openrange(self._offset, len(tag_text))
if tag_is_open:
- nesting = []
+ nesting = [tag_obj]
self._nestedtags[-1].append(nesting)
self._nestedtags.append(nesting)
else:
@@ -218,7 +218,7 @@ def handle_endtag(self, tag):
if isinstance(tag_obj, self.Tag):
close_idx = self.rawdata.find('>', self._offset) + 1
tag_obj.closerange(self._offset, close_idx - self._offset)
- self._nestedtags.pop().insert(0, tag_obj)
+ self._nestedtags.pop()
self.callback(tag_obj)
except ValueError as exc:
if isinstance(exc, compat_HTMLParseError):