NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #852 most downloaded on PyPI
Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds
Last release 2 months ago
30 Jul 2026
Release timing varies
gaps range from 9 days to 4.2 years
Nearly every release is documented
notes for 22 of 22 stable releases
2 versions withdrawn
withdrawn after publishing
19 years old
27 releases · first in 2007
Upgrade to feedparser-sgmllib 2.0.0.
Drop support for Python 3.9 and lower.
sgmllib3k to feedparser-sgmllib.One column per quarter.
Fix a DeprecationWarning thrown during calls to re.sub .
Resolve cgi module deprecation warnings.
Resolve cgi module deprecation warnings. (#330)
Merge branch 'release-6.0.10'
Merge branch 'release-6.0.10'
Merge branch 'release-6.0.9'
Merge branch 'release-6.0.9'
Fix a crash that can occur with GeoRSS feeds that lack a <where> tag. (#305)
Fix the name and link to the chardet module in the documentation.
Fix the name and link to the chardet module in the documentation. (#280)
No code changed in this hotfix, only documentation.
Catch urllib.error.URLError to prevent crashes.
Catch urllib.error.URLError to prevent crashes. (#239)
Prevent an AttributeError that occurs when a server returns HTTP 3xx but doesn't include a Location header as well.
Prevent an AttributeError that occurs when a server returns HTTP 3xx but doesn't include a Location header as well. (#267)
Prevent a TypeError crash that may occur when including a username and password in the feed URL.
Prevent a TypeError crash that may occur when including a username and password in the feed URL. (#276)
Prevent a UnicodeDecodeError crash that may occur when the title element's type attribute exists but is empty.
Prevent a UnicodeDecodeError crash that may occur when the title element's type attribute exists but is empty. (#277)
Prevent a UnicodeEncodeError crash that may occur if the URL contains Unicode characters in the path. (#273)
Fix an issue with the HTTP request status on Python >= 3.9.
Fix an issue with the HTTP request status on Python >= 3.9.
Stop building Python wheels with universal=1 set.
Stop building Python wheels with universal=1 set. (#251)
This was causing pip to find and install the feedparser 6.x wheels on Python 2 even though Python 2 is no longer supported.
Fix a bug that put a trailing quote in the documentation version. (#232)
Update the documentation URL to point to ReadTheDocs.
Remove all Python 2 compatibility code
Remove all Python 2 compatibility code (#228)
Add python_requires to setup.py (#231)
Fix Python 3.8 urllib.parse.splittype() deprecation warning
Support Python 3.6, 3.7, 3.8 and 3.9
Drop support for Python 2.4 through 2.7, and Python 3.0 through 3.5 (#169)
Convert feedparser from a monolithic file to a package
feedparser.parse(sanitize_html=bool) argument replaces the feedparser.SANITIZE_HTML global
feedparser.parse(resolve_relative_uris=bool) replaces the feedparser.RESOLVE_RELATIVE_URIS global
Unify the codebase so that 2to3 conversion is no longer required
Remove references to iconv_codecs
Update the Creative Commons namespace URI's
Update the default User-Agent name and URL
Support Middle European (Summer) Time timezones (#20)
Pass data to lazy_chardet_encoding() (#50)
Document that datetimes are returned in UTC (#51)
Remove cjkpython references in the documentation (#57)
Resolve ResourceWarnings thrown during unit tests (#170)
Fix tox build failures (#213)
Use base64.decodebytes() directly to support Python 3.9 (#201)
Fix Python 3.8 urllib.parse.splittype() deprecation warning (#211)
Support parsing colons in RFC822 timezones (#144)
Add chardet as an optional tox environment dependency
Fix the Big5 unit test that fails when chardet is installed (#184)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix #22 (pip package keeps upgrading all the time)
Fix #22 (pip package keeps upgrading all the time)
Remove the HTTP Status 9001 test that caused unit test tracebacks
Support PyPy
Remove the HTTP Status 9001 test that caused unit test tracebacks
Remove the completely-untested HTML tidy code
Remove BeautifulSoup as a dependency
Remove the XFN microformat parsing code
Remove the rel_enclosure microformat parsing code
Remove the rel_hcard microformat parsing code
Remove the rel_tag microformat parsing code
Replace the regex-based RFC 822 date parser with a procedural one
Replace the Python-licensed W3DTF date parser
Support HTML5 audio/source/video element relative URL's
Remove the unparsed itunes_keywords key from the result dictionary
Fix issue 321 just a little more (yet another code path was missed)
Issue 62 (support georss and gml namespaces)
Issue 296 (GUID's are always treated like relative URI's)
Issue 334 (media:restriction element content is not returned)
Issue 335 (sub-elements of media:group are not parsed and returned)
Issue 342 (support multiple dc:creator elements)
Issue 357 (loose parser breaks ampersands in link element URL's)
Issue 374 (support the Podlove Simple Chapters namespace)
Issue 380 (support media:rating element)
Issue 384 (fix chardet support in Python 3)
Issue 389 (elements in unknown uppercase namespaces are ignored)
Issue 392 (tags element subverts 'tags' key in result dictionary)
Issue 396 (Podlove Simple Chapters version 1.0 causes a KeyError)
Issue 399 (docs call request_headers parameter extra_headers)
Issue 401 (support additional dcterms and media namespaces elements)
Issue 404 (support asctime datetime strings with timezone information)
Issue 407 (decode forward slashes encoded as character entities)
Issue 421 (delay chardet invocation as long as possible)
Issue 422 (add return types docstrings)
Issue 433 (update the list of allowed MathML elements and attributes)
Consolidated and simplified the character encoding detection code
Consolidated and simplified the character encoding detection code
Issue 346 (the gb2312 encoding isn't always upgraded to gb18030)
Issue 350 (HTTP Last-Modified example is incorrect in documentation)
Issue 352 (importing lxml.etree changes what exceptions libxml2 throws)
Issue 356 (add support for the HTML5 attributes poster and preload)
Issue 364 (enclosure-sniffing microformat code can throw ValueError)
Issue 373 (support RFC822-ish dates with swapped days and months)
Issue 376 (uppercase 'X' in hex character references cause ValueError)
Issue 382 (don't strip inline user:password credentials from FTP URL's)
Minor changes to the documentation
Minor changes to the documentation
Strip potentially dangerous ENTITY declarations in encoded feeds
feedparser will now try to continue parsing despite compression errors
Fix issue 321 a little more (the initial fix missed a code path)
Issue 337 (_parse_date_rfc822() returns None on single-digit days)
Issue 343 (add magnet links to the ACCEPTABLE_URI_SCHEMES)
Issue 344 (handle deflated data with no headers nor checksums)
Issue 347 (support itunes:image elements with a url attribute)
Fix mistakes, typos, and bugs in the unit test code
Fix mistakes, typos, and bugs in the unit test code
Fix crash in Python 2.4 and 2.5 if the feed has a UTF_32 byte order mark
Replace the RFC822 date parser for more extensibility
Issue 304 (handle RFC822 dates with timezones like GMT+00:00)
Issue 309 (itunes:keywords should be split by commas, not whitespace)
Issue 310 (pubDate should map to published, not updated)
Issue 313 (include the compression test files in MANIFEST.in)
Issue 314 (far-flung RFC822 dates don't throw OverflowError on x64)
Issue 315 (HTTP server for unit tests runs on 0.0.0.0)
Issue 321 (malformed URIs can cause ValueError to be thrown)
Issue 322 (HTTP redirect to HTTP 304 causes SAXParseException)
Issue 323 (installing chardet causes 11 unit test failures)
Issue 325 (map description_detail to summary_detail)
Issue 326 (Unicode filename causes UnicodeEncodeError if locale is ASCII)
Issue 327 (handle RFC822 dates with extraneous commas)
Issue 328 (temporarily map updated to published due to issue 310)
Issue 329 (escape backslashes in Windows path in docs/introduction.rst)
Issue 331 (don't escape backslashes that are in raw strings in the docs)
Extensive, extensive unit test refactoring
Extensive, extensive unit test refactoring
Convert the Docbook documentation to ReST
Include the documentation in the source distribution
Consolidate the disparate README files into one
Support Jython somewhat (almost all unit tests pass)
Support Python 3.2
Fix Python 3 issues exposed by improved unit tests
Fix international domain name issues exposed by improved unit tests
Issue 148 (loose parser doesn't always return unicode strings)
Issue 204 (FeedParserDict behavior should not be controlled by assert)
Issue 247 (mssql date parser uses hardcoded tokyo timezone)
Issue 249 (KeyboardInterrupt and SystemExit exceptions being caught)
Issue 250 (updated can be a 9-tuple or a string, depending on context)
Issue 252 (running setup.py in Python 3 fails due to missing sgmllib)
Issue 253 (document that text/plain content isn't sanitized)
Issue 260 (Python 3 doesn't decompress gzip'ed or deflate'd content)
Issue 261 (popping from empty tag list)
Issue 262 (docs are missing from distribution files)
Issue 264 (vcard parser crashes on non-ascii characters)
Issue 265 (http header comparisons are case sensitive)
Issue 271 (monkey-patching sgmllib breaks other libraries)
Issue 272 (can't pass bytes or str to parse() in Python 3)
Issue 275 (_parse_date() doesn't catch OverflowError)
Issue 276 (mutable types used as default values in parse())
Issue 277 (python3 setup.py install fails)
Issue 281 (_parse_date() doesn't catch ValueError)
Issue 282 (_parse_date() crashes when passed None)
Issue 285 (crash on empty xmlns attribute)
Issue 286 ('apos' character entity not handled properly)
Issue 289 (add an option to disable microformat parsing)
Issue 290 (Blogger's invalid img tags are unparseable)
Issue 292 (atom id element not explicitly supported)
Issue 294 ('categories' key exists but raises KeyError)
Issue 297 (unresolvable external doctype causes crash)
Issue 298 (nested nodes clobber actual values)
Issue 300 (performance improvements)
Issue 303 (unicode characters cause crash during relative uri resolution)
Remove "Hot RSS" support since the format doesn't actually exist
Remove the old feedparser.org website files from the source
Remove the feedparser command line interface
Remove the Zope interoperability hack
Remove extraneous whitespace
Fix issue 91 (invalid text in XML declaration causes sanitizer to crash)
Fix issue 91 (invalid text in XML declaration causes sanitizer to crash)
Fix issue 254 (sanitization can be bypassed by malformed XML comments)
Fix issue 255 (sanitizer doesn't strip unsafe URI schemes)
Support microformats (rel-tag, rel-enclosure, xfn, hcard)
Improved MathML support
Support microformats (rel-tag, rel-enclosure, xfn, hcard)
Support IRIs
Allow safe CSS through sanitization
Allow safe HTML5 through sanitization
Support SVG
Support inline XML entity declarations
Support unescaped quotes and angle brackets in attributes
Support additional date formats
Added the request_headers argument to parse()
Added the response_headers argument to parse()
Support multiple entry, feed, and source authors
Officially make Python 2.4 the earliest supported version
Support Python 3
Bug fixes, bug fixes, bug fixes
Added support for chardet library
Removed socket timeout
Added support for chardet library
Your coding agent can read these notes before it upgrades. Set up the MCP server →