Библиотека парсера RSS-ленты в Python - PullRequest
38 голосов
/ 11 февраля 2010

Я ищу хорошую библиотеку в Python, которая поможет мне разобрать RSS-каналы. Кто-нибудь использовал feedparser? Есть отзывы?

Ответы [ 7 ]

53 голосов
/ 11 февраля 2010

Использование feedparser - намного лучший вариант, чем использование собственного с помощью minidom или BeautifulSoup.

  • Он нормализует различия между всеми версиями RSS и Atom, поэтому вам не нужно иметь разный код для каждого типа.
  • Полезно обнаруживать различные форматы даты и другие вариации в каналах.
  • Он автоматически следует перенаправлениям HTTP.
  • Обеззараживает содержимое HTML.
  • Он имеет поддержку заголовков ETag и Last-Modified, чтобы вы могли видеть, изменился ли канал, просто загрузив заголовок HTTP, а не весь канал.
  • Имеется поддержка аутентифицированных каналов.
  • Имеет поддержку HTTP прокси.

Как и другие упоминали, просто попробуйте. Это как две строки кода для разбора канала. Моя единственная жалоба состоит в том, что он просто использует словари в качестве модели данных, и некоторые атрибуты могут отсутствовать в словаре, если их нет в ленте, поэтому вы должны проверить это в своем коде. Но в документации очень четко указано, какие атрибуты всегда будут в словаре, а какие могут отсутствовать.

Наконец, я могу ручаться за это, поскольку я написал приложение, которое использует его. Смотрите здесь: http://www.feednotifier.com/

11 голосов
/ 11 февраля 2010

Feedparser очень мощный, настраиваемый и ооочень простой в использовании. Очень дружелюбная кривая обучения, если она вообще есть.

Пример

Программно определите, сколько ответов имеет ваш вопрос:

easy_install feedparser
python -c 'import feedparser; print len(feedparser.parse("http://bit.ly/c785aj")["entries"])'
2 голосов
/ 15 августа 2014

Я знаю, что это очень старая тема, но для чего я стоил, я использовал feedparser (Universal feed parser) версии 5.1.3, и недавно я выбрал speedparser (0.1.8) для производительности причины. Он имеет почти те же интерфейсы, но работает быстрее.

Я использую его для любительского Python-for-Android приложения и speedparser работает примерно в 5 раз быстрее на моих каналах.

2 голосов
/ 11 февраля 2010

http://www.feedparser.org/

Первый удар по G.

1 голос
/ 11 февраля 2010

Если вы хотите альтернативу, попробуйте xml.dom.minidom. Как и «Django - это Python», «RSS - это XML».

1 голос
/ 11 февраля 2010

В ответ на ваше продолжение.Вы можете использовать BeautifulSoup - но feedparser гораздо лучше ориентирован на передачу RSS.

Не для ухмылки - но вы читали фидпарсеры Документация ?Я не знаю, как это может быть проще в использовании.

0 голосов
/ 11 февраля 2010

Я настоятельно рекомендую feedparser.

...