0

我想显示来自 disqus 的最新 3 条评论并将它们链接到它们所属的帖子。我进行了一些研究,他们通常会解释如何创建 rss 提要,但我想获取 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 提要?

4

3 回答 3

1

只是为了澄清,我以前没有这样做过,但我认为研究这个链接会有所帮助。您可以解析 xml 并为您的项目形成一个 HttpResponse。希望这可以引导您走向正确的方向。

于 2012-11-02T10:10:22.457 回答
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 %}
于 2012-11-02T14:40:40.323 回答
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>

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

于 2013-06-12T15:30:54.793 回答