为什么Python的feedparser看不到所有的feed元素
我使用了以下代码:
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.summary
或 entry.description
,就会出现错误信息。这让我觉得很奇怪,因为我在浏览器中打开这个信息源的xml文件时,确实能看到 link
和 description
这两个部分。
有没有人知道我哪里做错了?
1 个回答
1
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.link
和entry.description
,尽管print entry.keys()
的结果是:
['summary_detail', 'published_parsed', 'links', 'title', 'summary', 'guidislink', 'title_detail', 'link', 'published', 'id']