如何通过python中的feedparser收集所有feed?

时间:2016-06-20 07:54:55

标签: python rss feedparser

我正在尝试使用feedparser从reuters.com获取RSS源。我访问了链接http://in.reuters.com/tools/rss以获取RSS订阅源的链接,例如http://feeds.reuters.com/reuters/INtopNews。当我使用feedparser在python中实现代码时,我只得到10个帖子,如下所示:

import feedparser

feeds = feedparser.parse('http://feeds.reuters.com/Reuters/worldNews')

for feed in feeds['entries']:
    print(feed['title'])

但如果我在www.feedreader.com上可视化相同的链接,当我附加链接并向下滚动时,我会发现更多帖子。如何在python中的feedparser中获取所有这些RSS帖子?

2 个答案:

答案 0 :(得分:1)

您只能从路透社Feed中获取10个项目的原因是因为所有Feed都包含。大多数RSS源仅包含最新的项目,而不是所有项目都会及时返回。 feedparser库读取Feed中当前的内容。

您的代码示例中的路透社Feed包含10个项目。

当RSS阅读器(如Feedreader)显示的项目多于向下滚动时的项目时,这是因为阅读器会保存不再在Feed中的旧项目。基于Web的RSS阅读器通常以这种方式存档项目。

答案 1 :(得分:0)

正如 rcade 提到的,大多数 RSS 提要仅涵盖最近的项目,但可以每天(甚至每小时)收集并使用它。如果你想要类似的东西,你可以从这里使用 Python rssarchive 库:https://pypi.org/project/rssarchive/

#!/usr/bin/env python
import rssarchive as ra
newra  = ra.RssArchive(CONFIG_TEST_MODE=True,CONFIG_FULL_TEXT_MODE = False)
newra.batch_save_rss()