如何从“http://myname.disqus.com/latest.rss”获取RSS订阅源到我的django博客?

时间:2012-11-02 08:47:27

标签: django rss disqus

我想显示来自disqus的最新3条评论,并将它们链接到他们所属的帖子。我有一些研究,他们通常解释如何创建rss feed但我想要获取rss数据。 当我打开这个rss时,我看到像这样的xml:

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>

<title>unicrow - Latest Comments</title>
<link rel="http://api.friendfeed.com/2008/03#sup" href="http://disqus.com/sup/all.sup#forumcomments-e63e6ca0" type="application/json" xmlns="http://www.w3.org/2005/Atom"/>
<link>http://unicrowblog.disqus.com/</link>
<description/>
<atom:link href="http://unicrowblog.disqus.com/comments.rss" rel="self"/>
<language>en</language>
<lastBuildDate>Thu, 01 Nov 2012 10:54:23 -0000</lastBuildDate>

<item>
<title>Re: http://box:8005/post/git-flow/</title>
<link>http://box:8005/post/git-flow/#comment-697865561</link>
<description>&lt;p>hjkgjfgtk&lt;/p></description>
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">kripton1</dc:creator>
<pubDate>Thu, 01 Nov 2012 10:54:23 -0000</pubDate>
</item>
...
</channel>
</rss>

我想在我的django项目中使用这个xml。如何使用这个xml rss feed ??

3 个答案:

答案 0 :(得分:1)

为了澄清,我之前没有这样做,但我认为学习this link可以提供帮助。您可以解析xml并为您的项目形成一个HttpResponse。希望这可以引导你走向正确的方向。

答案 1 :(得分:1)

我找到了解决方案。我在python中使用xml解析器

file = urllib2.urlopen('http://unicrowblog.disqus.com/latest.rss')
    data = file.read()
    file.close()
    dom = parseString(data)
    lists = []

    for i in range(1,4):
        xmlTag = dom.getElementsByTagName('description')[i].toxml()
        xmlData=xmlTag.replace('<description>&lt;p&gt;','').replace('&lt;/p&gt;</description>','')
        xmlDateTag = dom.getElementsByTagName('pubDate')[i].toxml()
        xmlDate=xmlDateTag.replace('<pubDate>','').replace('</pubDate>','')
        xmlLinkTag = dom.getElementsByTagName('link')[i+1].toxml()
        xmlLink=xmlLinkTag.replace('<link>','').replace('</link>','')

        data = {'xmlData':xmlData,'xmlDate':xmlDate,'xmlLink':xmlLink}
        lists.append(data)

我收集了3条最新评论,我在模板中使用它:

{% for list in lists %}
    <li>
       <span>{{list.xmlData|slice:":80"}}...</span>
       <span>→ <a href="{{list.xmlLink}}">Devamı</a></span>
       <span class="time">{{list.xmlDate}}</span>
    </li>
{% endfor %}

答案 2 :(得分:0)

使用此代码,它会自动从Disqus中检索数据并显示

<div id="recentcomments" class="dsq-widget"><script type="text/javascript" src="http://YOURBLOG.disqus.com/recent_comments_widget.js?num_items=5&hide_avatars=1&avatar_size=50&excerpt_length=10"></script></div>

不要忘记提及您的博客名称来代替 YOURBLOG