Python中的RSS提要解析器库[关闭]
Posted
技术标签:
【中文标题】Python中的RSS提要解析器库[关闭]【英文标题】:RSS feed parser library in Python [closed] 【发布时间】:2011-01-15 17:37:51 【问题描述】:我正在寻找一个好的 Python 库来帮助我解析 RSS 提要。有人用过feedparser吗?有什么反馈吗?
【问题讨论】:
下载并试用 feedparser 需要 5 分钟。 下载和试用 feedparser 可能只需要 5 分钟,但要彻底使用它来形成我们对 SO 有用和可靠的意见需要更长的时间。 5分钟的使用只能证明它可以安装并处理主要用例。 【参考方案1】:http://www.feedparser.org/
第一次击中 G。
【讨论】:
嗯,他确实在问题中提到过...... 不管怎样,除了 feedpurser 以外,大家还有什么好用的想法吗? @rahman.bd 不,feedparser 太好了,没有人会关心替代方案。 Feedparser 是一个很棒的库。它有大量的单元测试,并带有一个很棒的内置库,可以帮助进行字符编码检测。这真是一件艺术品。【参考方案2】:回答您的后续问题。您可以使用 BeautifulSoup - 但 feedparser 更适合 RSS 处理。
不要开玩笑 - 但你读过 feedparsers documentation 吗?我不知道如何使用起来更简单。
【讨论】:
为了他人的利益:feedparser.org 已被 Mark Pilgrim 删除。我将在下一个版本中提供它。【参考方案3】:如果您想要替代方案,请尝试 xml.dom.minidom。 就像“Django 是 Python”、“RSS 是 XML”。
【讨论】:
当 feedparser 存在时,没有充分的理由采用这种方法。您必须处理 RSS 和 Atom 之间的差异、格式错误的提要、各种日期/时间戳格式等。【参考方案4】:Feedparser 非常强大、可配置且易于使用。一个非常友好的学习曲线,如果有的话。
示例
以编程方式确定您的问题有多少个答案:
easy_install feedparser
python -c 'import feedparser; print len(feedparser.parse("http://bit.ly/c785aj")["entries"])'
【讨论】:
您可以使用 .entries 而不是 ["entries"] 因为 feedparser 使用允许属性访问的自定义字典。更容易打字和阅读。 感谢您的示例。 @FogleBird 感谢您的解释。【参考方案5】:使用feedparser 是比使用 minidom 或 BeautifulSoup 滚动自己更好的选择。
它将所有版本的 RSS 和 Atom 之间的差异标准化,因此您不必为每种类型使用不同的代码。 检测不同的日期格式和提要中的其他变化非常有用。 它会自动遵循 HTTP 重定向。 它净化 html 内容。 它支持 ETag 和 Last-Modified 标头,因此您只需下载 HTTP 标头而不是整个提要即可查看提要是否已更改。 它支持经过身份验证的提要。 它支持 HTTP 代理。就像其他人提到的那样,试试吧。这就像解析提要的 2 行代码。我唯一的抱怨是它只使用字典作为其数据模型,如果某些属性不在提要中,字典中可能会丢失它们,因此您必须在代码中检查。但是文档非常清楚哪些属性将始终在字典中,哪些可能会丢失。
最后,我可以保证,因为我已经编写了一个使用它的应用程序。见这里:http://www.feednotifier.com/
【讨论】:
感谢您的回答!..是的,它是如此酷且定义明确的文档!..易于使用。!!不过,您的提要通知器也很有趣! 你知道有一个库可以获取 feedparser 的输出并将其转回 feed 吗? 目前有个问题有点困扰我:feedparser 似乎在 Flickr 提要中的“媒体:”元素上失败。这真的很烦人。我刚刚提交了一个问题,希望我能尽快找到解决方法。 谢谢你的文章...我可以得到feednotifier的源代码吗?? github.com/fogleman/FeedNotifier【参考方案6】:我强烈推荐 feedparser。
【讨论】:
【参考方案7】:我知道这是一个非常古老的话题,但值得一提的是,我使用的是 feedparser(通用提要解析器)版本 5.1.3,最近出于性能原因,我切换到了speedparser (0.1.8)。它具有几乎相同的界面,但运行速度更快。
我将它用于业余 Python-for-android 应用程序,speedparser 在我的提要上运行速度大约快 5 倍。
【讨论】:
【参考方案8】:截至 2019 年,atoma
可能是 feedparser
的替代品,虽然我没有使用过。
【讨论】:
以上是关于Python中的RSS提要解析器库[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
DOM、SAX 和 StAX XML 解析器之间有啥区别? [关闭]
Twitter RSS提要解析器,用于在网站上显示tweet(包括缓存)