kurtmckee/feedparser

AssertionError: unexpected '/' char in declaration when parsing feed

Closed this issue · 1 comments

https://wingfelder.ca/feed/ breaks feedparser.

import feedparser

if __name__ == "__main__":
    feed = feedparser.parse("https://wingfelder.ca/feed/")

This is the error I get:

Traceback (most recent call last):
  File "C:\Code\FeedVault\hello.py", line 4, in <module>
    feed = feedparser.parse("https://wingfelder.ca/feed/")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Lovinator\AppData\Local\pypoetry\Cache\virtualenvs\feedvault-wnVpNEj2-py3.12\Lib\site-packages\feedparser\api.py", line 263, in parse
    saxparser.parse(source)
  File "C:\Program Files\Python312\Lib\xml\sax\expatreader.py", line 105, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "C:\Program Files\Python312\Lib\xml\sax\xmlreader.py", line 124, in parse
    self.feed(buffer)
  File "C:\Program Files\Python312\Lib\xml\sax\expatreader.py", line 211, in feed
    self._parser.Parse(data, isFinal)
  File "D:\a\1\s\Modules\pyexpat.c", line 470, in EndElement
  File "C:\Program Files\Python312\Lib\xml\sax\expatreader.py", line 375, in end_element_ns
    self._cont_handler.endElementNS(pair, None)
  File "C:\Users\Lovinator\AppData\Local\pypoetry\Cache\virtualenvs\feedvault-wnVpNEj2-py3.12\Lib\site-packages\feedparser\parsers\strict.py", line 124, in endElementNS
    self.unknown_endtag(localname)
  File "C:\Users\Lovinator\AppData\Local\pypoetry\Cache\virtualenvs\feedvault-wnVpNEj2-py3.12\Lib\site-packages\feedparser\mixin.py", line 321, in unknown_endtag
    method()
  File "C:\Users\Lovinator\AppData\Local\pypoetry\Cache\virtualenvs\feedvault-wnVpNEj2-py3.12\Lib\site-packages\feedparser\namespaces\_base.py", line 488, in _end_content
    value = self.pop_content('content')
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Lovinator\AppData\Local\pypoetry\Cache\virtualenvs\feedvault-wnVpNEj2-py3.12\Lib\site-packages\feedparser\mixin.py", line 629, in pop_content
    value = self.pop(tag)
            ^^^^^^^^^^^^^
  File "C:\Users\Lovinator\AppData\Local\pypoetry\Cache\virtualenvs\feedvault-wnVpNEj2-py3.12\Lib\site-packages\feedparser\mixin.py", line 543, in pop
    output = resolve_relative_uris(output, self.baseuri, self.encoding, self.contentparams.get('type', 'text/html'))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Lovinator\AppData\Local\pypoetry\Cache\virtualenvs\feedvault-wnVpNEj2-py3.12\Lib\site-packages\feedparser\urls.py", line 154, in resolve_relative_uris
    p.feed(html_source)
  File "C:\Users\Lovinator\AppData\Local\pypoetry\Cache\virtualenvs\feedvault-wnVpNEj2-py3.12\Lib\site-packages\feedparser\html.py", line 156, in feed
    super(_BaseHTMLProcessor, self).feed(data)
  File "C:\Users\Lovinator\AppData\Local\pypoetry\Cache\virtualenvs\feedvault-wnVpNEj2-py3.12\Lib\site-packages\sgmllib.py", line 98, in feed
    self.goahead(0)
  File "C:\Users\Lovinator\AppData\Local\pypoetry\Cache\virtualenvs\feedvault-wnVpNEj2-py3.12\Lib\site-packages\sgmllib.py", line 168, in goahead
    k = self.parse_declaration(i)
        ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Lovinator\AppData\Local\pypoetry\Cache\virtualenvs\feedvault-wnVpNEj2-py3.12\Lib\site-packages\feedparser\html.py", line 351, in parse_declaration    
    return sgmllib.SGMLParser.parse_declaration(self, i)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python312\Lib\_markupbase.py", line 134, in parse_declaration
    raise AssertionError("unexpected %r char in declaration" % rawdata[j])
AssertionError: unexpected '/' char in declaration

I'm using Python 3.12.1 and feedparser 6.0.11.

I'm not sure if this is a bug in feedparser or xml.sax.

Oops, I fucked up. Seems to already be fixed in the develop branch.