为什么Python的feedparser没有看到feed中的所有元素

时间:2014-04-24 05:39:21

标签: python rss feedparser

我使用以下代码:

import feedparser as fp

if __name__ == '__main__':
    url = 'http://www.careerbuilder.de/RTQ/rss20.aspx?rssid=RSS_PD&num=25&geoip=false&ddcompany=false&ddtitle=false&cat=JN038'  
    d = fp.parse(url)
    for entry in d.entries:
        print entry
        print '----------------------'

结果我得到了:

{'guidislink': 0, 'published': u'Wed, 23 Apr 2014 04:00:00 Z', 'published_parsed': time.struct_time(tm_year=2014, tm_mon=4, tm_mday=23, tm_hour=4, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=113, tm_isdst=0), 'title': u'Bankkaufmann (m/w)'}
----------------------
{'guidislink': 0, 'published': u'Wed, 23 Apr 2014 04:00:00 Z', 'published_parsed': time.struct_time(tm_year=2014, tm_mon=4, tm_mday=23, tm_hour=4, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=113, tm_isdst=0), 'title': u'Anlagenbuchhalter (m/w)'}
----------------------
{'guidislink': 0, 'published': u'Wed, 23 Apr 2014 04:00:00 Z', 'published_parsed': time.struct_time(tm_year=2014, tm_mon=4, tm_mday=23, tm_hour=4, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=113, tm_isdst=0), 'title': u'Bankkaufleute (m/w)'}
----------------------

看起来Feed中的条目没有"摘要"和"链接"元素。作为一种形式,如果我尝试使用entry.summaryentry.description,我会收到一条错误消息。这对我来说很奇怪,因为如果我在浏览器中打开它,我会在xml中看到linkdescription元素。

有人知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

来自revision history of feedparser

  

Universal Feed Parser 3.0b18于2004年2月17日发布。

     
      
  • 始终将说明映射到summary_detail(Andrei)
  •   
  • 使用libxml2(如果可用)
  •   

来自here

  

某些RSS源在使用guid时表示链接。 guid也可以用作   与链接无关的不透明标识符。如果是RSS提要   使用guid作为入口链接,没有链接,Universal Feed   Parser检测到这一点,并在d.entries[i].link中使guid可用。

也许这就是为什么我可以毫无错误地访问entry.linkentry.description,但print entry.keys()给出了

['summary_detail', 'published_parsed', 'links', 'title', 'summary', 'guidislink', 'title_detail', 'link', 'published', 'id']