CARVIEW |
Select Language
HTTP/2 200
server: nginx
date: Fri, 10 Oct 2025 05:36:11 GMT
content-type: text/html; charset=utf-8
x-archive-orig-date: Sat, 14 Oct 2006 03:06:51 GMT
x-archive-orig-server: Apache
x-archive-orig-accept-ranges: bytes
x-archive-orig-vary: Accept-Encoding,User-Agent
x-archive-orig-connection: close
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Sat, 14 Oct 2006 03:06:51 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Wed, 23 Jun 2004 16:32:01 GMT", ; rel="prev memento"; datetime="Tue, 10 Oct 2006 22:49:32 GMT", ; rel="memento"; datetime="Sat, 14 Oct 2006 03:06:51 GMT", ; rel="next memento"; datetime="Thu, 09 Nov 2006 14:49:58 GMT", ; rel="last memento"; datetime="Wed, 01 Oct 2025 00:42:30 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 32_0_20061014022409_crawl23-c/32_0_20061014030524_crawl23.arc.gz
server-timing: captures_list;dur=0.911910, exclusion.robots;dur=0.029923, exclusion.robots.policy;dur=0.014562, esindex;dur=0.013046, cdx.remote;dur=23.756573, LoadShardBlock;dur=219.429638, PetaboxLoader3.datanode;dur=256.225366, load_resource;dur=312.879853, PetaboxLoader3.resolve;dur=219.078461
x-app-server: wwwb-app212
x-ts: 200
x-tr: 634
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: wb-p-SERVER=wwwb-app212; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
Universal Feed Parser
Universal Feed Parser
Parse RSS and Atom feeds in Python. 3000 unit tests. Open source.
Getting started
>>> import feedparser >>> d = feedparser.parse("https://feedparser.org/docs/examples/atom10.xml") >>> d['feed']['title'] # feed data is a dictionary u'Sample Feed' >>> d.feed.title # get values attr-style or dict-style u'Sample Feed' >>> d.channel.title # use RSS or Atom terminology anywhere u'Sample Feed' >>> d.feed.link # resolves relative links u'https://example.org/' >>> d.feed.subtitle # parses escaped HTML u'For documentation <em>only</em>' >>> d.channel.description # RSS terminology works here too u'For documentation <em>only</em>' >>> len(d['entries']) # entries are a list 1 >>> d['entries'][0]['title'] # each entry is a dictionary u'First entry title' >>> d.entries[0].title # attr-style works here too u'First entry title' >>> d['items'][0].title # RSS terminology works here too u'First entry title' >>> e = d.entries[0] >>> e.link # easy access to alternate link u'https://example.org/entry/3' >>> e.links[1].rel # full access to all Atom links u'related' >>> e.links[0].href # resolves relative links here too u'https://example.org/entry/3' >>> e.author_detail.name # author data is a dictionary u'Mark Pilgrim' >>> e.updated_parsed # parses all date formats (2005, 11, 9, 11, 56, 34, 2, 313, 0) >>> e.content[0].value # sanitizes dangerous HTML u'<div>Watch out for <em>nasty tricks</em></div>' >>> d.version # reports feed type and version u'atom10' >>> d.encoding # auto-detects character encoding u'utf-8' >>> d.headers.get('Content-type') # full access to all HTTP headers u'application/xml'
Like the parser? Buy the t-shirt!
Copyright © 2002-5 Mark Pilgrim