2

我正在尝试使用 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 %}

当我在提要上单独使用 feedparser 时,我可以传递信息,但是当我尝试合并提要时,什么都没有显示。我已经导入了 feedparser 和 Future。

4

2 回答 2

0

您的 sorted() 调用缺少结束括号。

于 2013-09-16T03:16:18.863 回答
0

我通过分解输出找到了答案。for 循环正在取出条目标签并将它们保持在更高级别,因此我的 html 需要:

{% for r in feeds %}
      <a href={{r.link}} target=_blank>{{r.title}}</a>: {{r.description}}
      <br/>
{% endfor %}

现在完美运行

于 2013-09-17T05:21:55.250 回答