我使用以下代码:
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.summary
或entry.description
,我会收到一条错误消息。这对我来说很奇怪,因为如果我在浏览器中打开它,我会在xml中看到link
和description
元素。
有人知道我做错了吗?
答案 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.link
和entry.description
,但print entry.keys()
给出了
['summary_detail', 'published_parsed', 'links', 'title', 'summary', 'guidislink', 'title_detail', 'link', 'published', 'id']