Каков наилучший способ получить RSS, в режиме реального времени или почти - PullRequest
3 голосов
/ 12 октября 2009

Я хотел бы знать, как лучше всего получать RSS-каналы в режиме реального времени, не загружая весь канал, даже если он не был изменен. Я не против языка, я просто ищу лучший способ сделать это.

1 Ответ

2 голосов
/ 12 октября 2009

Вы можете использовать параметры заголовка HTTP ETag и If-Modified-Since header.

Вот пример кода Python:

etag = ... # etag of previous request
last_modifier = ... # time of last request

req = urllib2.Request(url)
if etag:
    req.add_header("If-None-Match", etag)

if last_modified:
    req.add_header("If-Modified-Since", last_modified)

opener = urllib2.build_opener(NotModifiedHandler())
url_handle = opener.open(req)
headers = url_handle.info()

if hasattr(url_handle, 'code') and url_handle.code == 304:
    # no change happened
else:
    # RSS Feed has changed

Код можно перенести на любой язык, где вы просто добавляете необходимые теги заголовков и проверяете возвращенный код.

ОБНОВЛЕНИЕ: Оформить заказ в этой записи блога: Условное получение HTTP для хакеров RSS

...