Feedparser出现UndeclaredNamespace错误

时间:2014-08-01 00:07:31

标签: python python-2.7 feedparser

您好我在使用Feedparser时遇到以下错误:

  

提升UndeclaredNamespace,“'%s'与命名空间”%无关   givenprefix feedparser.UndeclaredNamespace:'media'没有关联   使用命名空间

我设法将其缩小到一个原因:

  

http://feeds.mashable.com/Mashable

我正在编写一个使用Feedparser和Beautiful soup来抓取我感兴趣的各种RSS源的新闻文章的网络抓取工具,我正在用Python写这篇文章。

错误信息是:

feed = feedparser.parse(in_feed)
File "/usr/lib/python2.7/dist-packages/feedparser.py", line 4014, in parse
saxparser.parse(source)
File "/usr/lib/python2.7/dist-packages/drv_libxml2.py", line 208, in parse
eltName,eltQName,attributesNSImpl) 
File "/usr/lib/python2.7/dist-packages/feedparser.py", line 1809, in startElementNS
raise UndeclaredNamespace, "'%s' is not associated with a namespace" % givenprefix
feedparser.UndeclaredNamespace: 'media' is not associated with a namespace 

所有其他Feed都可以。有人可以给我一些关于此的建议。

1 个答案:

答案 0 :(得分:1)

我查看了Mashable Feed,它在顶部有所有导入的命名空间:

<rss version='2.0' xmlns:atom='http://www.w3.org/2005/Atom' xmlns:campaign='http://organizecampaign.com/' xmlns:content='http://purl.org/rss/1.0/modules/content/' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:mash='http://mashable.com/rss' xmlns:mashable='http://mashable.com/rss' xmlns:slash='http://purl.org/rss/1.0/modules/slash/' xmlns:sy='http://purl.org/rss/1.0/modules/syndication/' xmlns:wfw='http://wellformedweb.org/CommentAPI/'>

没有为&#34; media&#34;定义名称空间,这就是为什么当标签&#34; media:thumbnail&#34;稍后会遇到,会抛出错误。

因此,我会说Mashable Feed是错误形成的。解决它的一种方法是为媒体使用公共名称空间。我在http://www.rssboard.org/media-rss找到了一个参考。他们举了一个例子:

xmlns:media="http://search.yahoo.com/mrss/"