我正在尝试使用python合并RSS提要,然后将它们播放回网站。研究了推荐的方法后,我选择了以下代码,这些代码基本上是建议的直接副本:
hit_list = ['http://www.bbc.co.uk/sport/football/teams/cardiff-city/rss.xml','http://www1.skysports.com/feeds/11704/news.xml','http://www.cardiffcity-mad.co.uk/rssfeeds/rssfull.asp']
# pull down all feeds
future_calls = [Future(feedparser.parse,rss_url) for rss_url in hit_list]
# block until they are all in
feeds = [future_obj() for future_obj in future_calls]
#Now that you have your feeds, extract all the entries
entries = []
for feed in feeds:
entries.extend(feed["items"])
values['feeds'] = sorted(entries, key=lambda entry: entry["updated_parsed"])
稍后,我使用以下方式调用网络:
template = jinja_environment.get_template('TeamView.html')
self.response.out.write(template.render(values))
最后,在我的html页面中,我有:
{% for r in feeds.entries %}
<a href={{r.link}} target=_blank>{{r.title}}</a>: {{r.description}}
<br/>
{% endfor %}
当我在feed上单独使用feedparser时,我可以传递信息,但是当我尝试合并Feed时没有任何显示。我已经导入了feedparser和Future。
答案 0 :(得分:0)
您的sorted()调用缺少结束语。
答案 1 :(得分:0)
我通过分解输出找到了答案。 for循环取出条目标签并将它们保持在更高级别,因此我的html需要是:
{% for r in feeds %}
<a href={{r.link}} target=_blank>{{r.title}}</a>: {{r.description}}
<br/>
{% endfor %}
现在完美运作