feedparser 和 Google 新闻
我正在尝试用Python从Google新闻下载一份新闻数据(想做一些自然语言处理),我对XML完全不懂,只是在用一个关于如何使用feedparser的例子。
问题是,我从RSS源得到的字典里找不到新闻的内容,只有标题。
我现在尝试使用的代码是这样的:
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新闻的问题,还是我做错了什么?有没有办法解决这个问题?
2 个回答
8
你有没有查看过谷歌新闻的内容?
每个内容里都有一个根元素,里面包含了一堆信息,还有实际的条目字典。这里有个简单的方法可以看看里面有什么:
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']
所以,试着玩玩这个。希望这能给你一个好的开始