Библиотека синтаксического анализатора канала RSS в [закрытом] Python

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

38
задан rahman.bd 11 February 2010 в 14:50
поделиться

6 ответов

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

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

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

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

54
ответ дан 27 November 2019 в 03:35
поделиться

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

Пример

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

easy_install feedparser
python -c 'import feedparser; print len(feedparser.parse("http://bit.ly/c785aj")["entries"])'
11
ответ дан 27 November 2019 в 03:35
поделиться

http://www.feedparser.org/

Первое попадание в G.

1
ответ дан 27 November 2019 в 03:35
поделиться

При чтении http://linux.die.net/man/2/open параметр методов для режима open:

должен быть указан, когда O_CREAT находится в флагах, и в противном случае игнорируется. Режим аргументов определяет разрешения для использования в случае создания нового файла.

-121--1113895-

Вы никогда не сможете гарантировать, что это сработает, если вам потребуется физическое присутствие на машине. Например:

  • Что делать, если приложение не выпускает ресурс своевременно, пока вы пытаетесь его удалить? Возникает ошибка, и приложение остается.
  • Поведение одного приложения, запускающего другое, которое затем удаляет первое приложение, является очень подозрительным с точки зрения AV. Вы, скорее всего, вызовете защиту на компьютере пользователя, которая может убить процесс, пытающийся убить ваше оригинальное приложение.
  • Если вы делаете что-то вроде удаления файла при перезагрузке, что, если пользователь перемещает ваш файл между или делает копию? Его больше нет в исходном месте, и приложение остается.

Если приложение требует такого уровня безопасности, попробуйте разместить его на управляемом компьютере (например, предоставив веб-службу и предоставив клиенту-заглушке доступ к ней путь).

На некотором родственном заметке, также есть соблазн спекулировать о мотивах того, кто (1) требует физического присутствия на чьей-то машине и (2) хочет удалить доказательства того, что приложение существовало.

-121--1567566-

В ответ на ваши последующие действия. Вы могли бы использовать SpeedSoup - но feedparser гораздо лучше ориентирован на RSS-передачу.

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

1
ответ дан 27 November 2019 в 03:35
поделиться

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

-1
ответ дан 27 November 2019 в 03:35
поделиться

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

2
ответ дан 27 November 2019 в 03:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: