2010-02-11 69 views
35

我正在寻找一个好的python库,它可以帮助我解析RSS源。有没有人使用feedparser?任何反馈?Python中的RSS源解析器库

+5

下载并尝试feedparser将需要5分钟。 – 2010-02-11 14:01:53

+3

下载并尝试feedparser可能只需要5分钟,但要花足够长的时间才能充分利用它,以形成我们有用和可靠的观点,就像SO上的其他人一样。 5分钟的使用只会证明它可以安装并处理主要用例。 – Trindaz 2014-02-17 01:32:48

回答

49

使用feedparser比滚动自己与minidom命名或BeautifulSoup一个更好的选择。

  • 它规范化所有版本的RSS和Atom之间的差异,所以你不必为每种类型有不同的代码。
  • 在提要中检测不同的日期格式和其他变体是很好的。
  • 它会自动遵循HTTP重定向。
  • 它清理HTML内容。
  • 它支持ETag和Last-Modified标头,因此您可以通过下载HTTP标头而不是整个订阅源来查看订阅源是否已更改。
  • 它支持认证的源。
  • 它支持HTTP代理。

像其他人所说的那样,试试吧。这就像解析一个feed的两行代码。我唯一的抱怨是,它只是使用字典作为它的数据模型,如果字典中没有属性,字典中可能会丢失一些属性,所以你必须在你的代码中检查它。但是文档非常清楚哪些属性总是在字典中,哪些可能会丢失。

最后,我可以证明它,因为我写了一个使用它的应用程序。看到这里:http://www.feednotifier.com/

+0

感谢您的回答!是的,它是如此酷和明确的文档!易于使用。虽然您的Feed通知器也很有趣! – 2010-02-12 07:53:46

+0

您是否知道一个采用Feedparser输出并可以将其重新转换为Feed的库? – 2010-09-15 00:22:41

+0

目前有一个问题困扰着我:feedparser似乎在Flickr提要中的'media:'元素上失败。这真的很烦人。我刚刚提出了一个问题,希望我能尽快得到一些解决方法。 – dguaraglia 2010-11-16 23:55:01

1
+0

好吧,他在问题中提到了它...... – 2010-02-11 14:01:21

+0

无论如何,你们对使用简单的feedpurser没有任何想法吗? – 2010-02-11 14:15:21

+0

@ rahman.bd不,Feedparser太好了,没人会关心替代方案。 – 2010-02-11 14:33:26

1

在回答你的随访。您可以使用BeautifulSoup - 但feedparser更适合RSS处理。

不要嗤之以鼻 - 但你有没有看过feedparsers documentation?我不知道如何更简单的使用。

+2

为了他人的利益:feedparser.org已被Mark Pilgrim取消。我将把它作为下一个版本的一部分提供。 – 2011-10-21 06:25:06

0

如果您想要替代方法,请尝试xml.dom.minidom。 就像“Django是Python”,“RSS是XML”一样。

+0

当feedparser存在时,没有理由采取这种方法。您必须处理RSS与Atom,格式错误的Feed,各种日期/时间戳格式等之间的差异。 – FogleBird 2010-02-11 15:25:04

10

Feedparser功能非常强大,可配置且易于使用。一个非常友好的学习曲线,如果有的话。

编程方式确定你的问题有多少的答案有:

easy_install feedparser 
python -c 'import feedparser; print len(feedparser.parse("http://bit.ly/c785aj")["entries"])' 
+0

您可以使用.entries而不是[“entries”],因为feedparser使用允许访问属性的自定义字典。更容易打字和阅读。 – FogleBird 2010-02-11 15:35:27

+0

谢谢你的例子。 @FogleBird感谢您的解释。 – 2013-07-17 09:19:52

1

我知道这是一个非常古老的话题,但对于它的价值,我使用的是feedparser(Universal feed parser)版本5.1.3,并且出于性能方面的原因,我最近将其切换为speedparser(0.1.8)。它具有几乎相同的界面,但运行速度更快。

我将它用于业余Python-for-Android应用程序和speedparser在我的提要上运行速度提高了约5倍。