使用 feedparser 获取流式数据

Using feedparser to get streaming data

我正在尝试像下面这样解析提要:

feed1 = 'http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.geojson'
feed2 = 'http://developer.usa.gov/1usagov'

我可以使用 feedparser 模块来解析第一个提要,但不能解析第二个。

import feedparser
feed1_read = feedparser.parse(feed1) # doesn't hang
feed2_read = feedparser.parse(feed2) # hangs

对于这些 Feed 的工作原理,我有什么不明白的地方吗?为什么 feedparser 在第二个提要上挂起,而不是在第一个提要上挂起?

feedparser 实际上无法解析这些供稿中的 feedparser 模块用于解析 Atom 和 RSS 提要,它们是 XML 文档格式,而这两种提要都是 return JSON 文档。

你打电话后:

feed1_read = feedparser.parse(feed1) # doesn't hang

你会发现feed1_read['feed']是空的:

>>> feed1_read['feed']
{}

还有:

>>> feed1_read['bozo_exception']
SAXParseException('Document is empty\n',)

可能 requests 模块会更有用。