2009-11-04 70 views
6

我在Python中使用feedparser库来从当地报纸上检索新闻(我的意图是在这个语料库上进行自然语言处理),并希望能够检索许多过去来自RSS提要的条目。我不太了解RSS的技术问题,但我认为这应该是可能的(我可以看到,例如,Google Reader和Feedly可以在需要时按需执行此操作,因为我移动滚动条)。Feedparser - 从谷歌阅读器检索旧邮件

当我做到以下几点:

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 feed中只获取新闻项目的链接,并用BeautifulSoup解析整个页面以获取我想要的文本。另一种解决方案是爬行器,它遵循页面中的所有本地链接来获取大量新闻内容,但现在我想避免这种情况。

-

一个解决方案,似乎是使用谷歌阅读器RSS缓存:

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

但访问此我必须登录到谷歌阅读器。任何人都知道我是如何从python那里做到的? (我真的不知道关于网络的一些事情,我通常只会搞数值计算)。

回答

9

您只会收到十几个条目,因为这就是Feed的内容。如果您需要历史数据,则必须找到所述数据的供稿/数据库。

查看此ReadWriteWeb article了解在网上查找公开数据的一些资源。

请注意,如您的标题所示,Feedparser与此无关。 Feedparser会解析您提供的内容。除非您找到并传递给它,否则无法找到历史数据。它只是一个解析器。希望这能说明问题! :)

+0

再次感谢Bartek。我想我现在对它更了解了。所以RSS只是一个存储在服务器中的xml文件?我对它有错误的印象......认为这是一种“协议”来获得文字提要。 再次感谢。 – 2009-11-04 20:19:46

3

要扩展Bartek的答案:您也可以开始存储您已经看到的Feed中的所有条目,并构建您自己的Feed内容的历史归档。这会延迟你开始使用它作为一个语料库的能力(因为你必须这样做一个月以建立一个月的值条目的集合),但是你不会依赖于任何其他人的数据。

我可能会误解,但我非常肯定Google Reader可以及时回溯:每个Feed的过去条目都存储在某个地方。

+0

Hummm ...我想要走的路是从Google阅读器本身获取Feed,也许? – 2009-11-04 20:17:32

+1

看来,谷歌阅读器本身可以用来检索项目的历史列表! :D http://googlesystem.blogspot.com/2007/06/reconstruct-feeds-history-using-google.html – 2009-11-04 20:34:12

+0

我刚刚发现了这一点。以下是您感兴趣的Feed中的最后100个项目:http://www.google.com/reader/atom/feed/http://feeds.folha.uol.com.br/folha/emcimadahora/rss091。 XML?n = 1000 – 2009-11-04 20:42:27