2

Python を使用して RSS フィードをマージし、それらを Web サイトに再生しようとしています。推奨される方法を調査した結果、基本的に推奨されるもののそのままのコピーである次のコードを選択しました。

    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"])

後で、次を使用して Web を呼び出します。

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 と Future をインポートしました。

4

2 に答える 2

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 に答える
0

sorted() 呼び出しに閉じ括弧がありません。

于 2013-09-16T03:16:18.863 に答える