2009-11-04 89 views
4

我试图从谷歌新闻使用Python的通用feedparser下载一个新闻语料库(尝试做一些自然语言处理)。我对XML一无所知,我只是用一个如何使用feedparser的例子。 问题是,我无法在字典中找到我从RSS feed获得的内容的新闻标题。feedparser和谷歌新闻

目前,我尝试使用的代码是这样的:

import feedparser 
url = 'http://news.google.com.br/news?pz=1&cf=all&ned=us&hl=en&output=rss' 
# just some GNews feed - I'll use a specific search later 

feed = feedparser.parse(url) 
for post in feed.entries: 
    print post.title 
    print post.keys() 

我在这个岗位领取钥匙只是标题,摘要,日期,等...有没有内容。

这是Google新闻的一些问题还是我做错了什么?有没有办法做到这一点?

+0

谷歌新闻不存储实际内容据我所知,只是一个内容摘要。您需要刮掉链接到该内容的网站。 – Bartek 2009-11-04 02:54:35

+0

:( 我刚刚意识到几乎每一个相关的新闻源都是这样的,RSS feed从不包含新闻的全文,只是摘要,我想我必须学习如何使用BeautifulSoup。 – 2009-11-04 13:56:38

+0

我刚刚意识到如何用BeautifulSoup解析一些页面。感谢您的回答。 – 2009-11-04 19:59:03

回答

8

您是否检查过Google新闻提要?

每个Feed中都有一个根元素,其中包含一串信息和实际输入字典。这里有一个肮脏的方式来看看有什么可用:

import feedparser 
d = feedparser.parse('http://news.google.com/news?pz=1&cf=all&ned=ca&hl=en&topic=w&output=rss') 

print [field for field in d] 

从我们可以看到我们有一个entries字段,它极有可能包含..新闻条目!如果您:

import pprint 
pprint.pprint(entry for entry in d['entries']) 

我们得到一些更多的信息:)会告诉你所有与一个漂亮的印刷方式中的每个条目(这就是pprint是)

于是领域,获取所有我们的新闻条目从这个饲料的标题:

titles = [entry.title for entry in d['entries'] 

所以,玩弄这一点。希望这是一个有用的开始

+0

Humm ...我玩了一下这个。显然这个rss只给出一个摘要,而不是新闻的全文。:( – 2009-11-04 03:13:31