Feedparser - 从Google Reader检索旧消息

6 投票
2 回答
4122 浏览
提问于 2025-04-15 15:40

我正在使用Python的feedparser库来从当地报纸获取新闻(我的目的是对这些内容进行自然语言处理),我希望能够从RSS源中获取很多过去的条目。

我对RSS的技术问题不是很了解,但我觉得这应该是可能的(比如,我看到Google Reader和Feedly可以在我滚动条移动时“按需”获取内容)。

当我执行以下操作时:

import feedparser

url = 'http://feeds.folha.uol.com.br/folha/emcimadahora/rss091.xml'
feed = feedparser.parse(url)
for post in feed.entries:
   title = post.title

我只得到十几个条目。我原本想要的是几百个。如果可能的话,能不能获取过去一个月的所有条目?仅仅使用feedparser能做到吗?

我打算从RSS源中只获取新闻链接,然后用BeautifulSoup解析完整页面,以获得我想要的文本。另一种解决方案是使用爬虫程序,跟踪页面中的所有本地链接来获取大量新闻条目,但我现在想避免这样做。

--

一个出现的解决方案是使用Google Reader的RSS缓存:

http://www.google.com/reader/atom/feed/http://feeds.folha.uol.com.br/folha/emcimadahora/rss091.xml?n=1000

但要访问这个,我必须登录Google Reader。有没有人知道我该如何在Python中做到这一点?(我对网络一无所知,通常只处理数值计算)。

2 个回答

3

为了更详细地解释Bartek的回答:你可以开始保存你已经看到的所有信息,这样就能建立一个自己的历史档案,记录这些信息的内容。这样做虽然会让你暂时无法立即使用这些信息(因为你需要花一个月的时间来收集一个月的内容),但你就不需要依赖其他人提供的数据了。

我可能记错了,但我觉得这就是Google Reader能够查看过去内容的原因:他们把每个信息源的历史记录都存储在某个地方。

10

你只看到十几个条目,是因为这个信息源里就只有这些。如果你想要历史数据,你得找一个包含这些数据的信息源或者数据库。

可以看看这篇ReadWriteWeb的文章,里面有一些关于如何在网上找到开放数据的资源。

要注意,Feedparser和你标题里提到的内容没有关系。Feedparser只是处理你给它的数据。它不能自己找到历史数据,除非你自己找到并提供给它。它只是一个解析工具。希望这样能让你更明白! :)

撰写回答