feedparser 和 Google 新闻

4 投票
2 回答
6506 浏览
提问于 2025-04-15 15:38

我正在尝试用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 个回答

1

首先,你需要查看一下 RSS规范。这里还有一个 提要解析器。这些内容应该能帮助你入门。

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']

所以,试着玩玩这个。希望这能给你一个好的开始

撰写回答