Загрузка RSS с использованием Python - PullRequest
1 голос
/ 25 марта 2010

У меня есть список из 200 RSS-каналов, которые я должен загрузить. Это непрерывный процесс - я должен загрузить каждый пост, ничего не может быть пропущено, но также нет дубликатов. Так что передовой практикой следует помнить последнее обновление канала и контролировать его для изменения в x-часовом интервале? И как справиться, если загрузчик будет перезапущен? Поэтому загрузчик должен помнить, что было загружено, и не загружать его снова ...

Это где-то уже реализовано? Или какие-нибудь советы для статьи? Спасибо

Ответы [ 2 ]

4 голосов
/ 25 марта 2010

Обычно это то, что вы хотите сделать:

  • Периодически извлекайте каналы и анализируйте их с помощью универсального анализатора каналов и сохраняйте записи где-либо.
  • Используйте заголовки ETags и IfModified при получении каналов, чтобы избежать синтаксического анализа каналов, которые не изменились с момента последней загрузки. вам нужно будет поддерживать значения Etags и Ifmodified, полученные при последней загрузке канала.
  • Чтобы избежать дублирования, каждая запись должна храниться со своим уникальным guid, затем проверьте, сохранена ли запись с таким же guid или нет. (отступите через entry_link, хэш заголовка + URL канала, чтобы однозначно идентифицировать запись, если записи канала не имеют guid)
2 голосов
/ 25 марта 2010

Вы можете использовать feedparser , чтобы проанализировать каналы и сохранить в базе данных максимальное опубликованное время для канала.

Для простой базы данных вы можете использовать shelve .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...