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

1 投票
1 回答
1402 浏览
提问于 2025-04-18 04:02

我使用了以下代码:

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)'}
----------------------

看起来这个信息源里的条目没有“summary”(摘要)和“link”(链接)这两个部分。为了确认这一点,如果我尝试使用 entry.summaryentry.description,就会出现错误信息。这让我觉得很奇怪,因为我在浏览器中打开这个信息源的xml文件时,确实能看到 linkdescription 这两个部分。

有没有人知道我哪里做错了?

1 个回答

1

来自feedparser的修订历史

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

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

还有来自这里的内容

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

撰写回答