| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- :abbr:`HTTP (Hypertext Transfer Protocol)` Redirects
- ====================================================
- When you download a feed from a remote web server, :program:`Universal Feed Parser`
- exposes the :abbr:`HTTP (Hypertext Transfer Protocol)` status code. You need
- to understand the different codes, including permanent and temporary redirects,
- and feeds that have been marked "gone".
- When a feed has temporarily moved to a new location, the web server will return
- a ``302`` status code. :program:`Universal Feed Parser` makes this available
- in ``d.status``.
- There is nothing special you need to do with temporary redirects; by the time
- you learn about it, :program:`Universal Feed Parser` has already followed the
- redirect to the new location (available in ``d.href``), downloaded the feed,
- and parsed it. Since the redirect is temporary, you should continue requesting
- the original :abbr:`URL (Uniform Resource Locator)` the next time you want to
- parse the feed.
- Noticing temporary redirects
- ----------------------------
- ::
- >>> import feedparser
- >>> d = feedparser.parse('http://feedparser.org/docs/examples/temporary.xml')
- >>> d.status
- 302
- >>> d.href
- 'http://feedparser.org/docs/examples/atom10.xml'
- >>> d.feed.title
- u'Sample Feed'
- When a feed has permanently moved to a new location, the web server will return
- a ``301`` status code. Again, :program:`Universal Feed Parser` makes this
- available in ``d.status``.
- If you are polling a feed on a regular basis, it is very important to check the
- status code (``d.status``) every time you download. If the feed has been
- permanently redirected, you should update your database or configuration file
- with the new address (``d.href``). Repeatedly requesting the original address
- of a feed that has been permanently redirected is very rude, and may get you
- banned from the server.
- Noticing permanent redirects
- ----------------------------
- ::
- >>> import feedparser
- >>> d = feedparser.parse('http://feedparser.org/docs/examples/permanent.xml')
- >>> d.status
- 301
- >>> d.href
- 'http://feedparser.org/docs/examples/atom10.xml'
- >>> d.feed.title
- u'Sample Feed'
- When a feed has been permanently deleted, the web server will return a ``410``
- status code. If you ever receive a ``410``, you should stop polling the feed
- and inform the end user that the feed is gone for good.
- Repeatedly requesting a feed that has been marked as "gone" is very rude, and
- may get you banned from the server.
- Noticing feeds marked "gone"
- ----------------------------
- ::
-
- >>> import feedparser
- >>> d = feedparser.parse('http://feedparser.org/docs/examples/gone.xml')
- >>> d.status
- 410
|