我想显示来自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><p>hjkgjfgtk</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 ??
答案 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><p>','').replace('</p></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 。