使用Django获取用户的最新推文
问题描述:
我想创建一个函数,它可以抓取每个用户来自特定组的最新推文。所以,如果用户在'作者'组中,我想抓住他们最新的推文,然后最终缓存一天的结果,所以我们只做一次疯狂的腿部工作。使用Django获取用户的最新推文
def latest_tweets(self):
g = Group.objects.get(name='author')
users = []
for u in g.user_set.all():
acc = u.get_profile().twitter_account
users.append('http://twitter.com/statuses/user_timeline/'+acc+'.rss')
return users
是我在迄今为止在那里,但我在一个完整的宽松结束,我怎么解析RSS到那里最新的鸣叫。有人可以帮我从这里出去吗?如果有更好的方法来做到这一点,欢迎任何建议!我敢肯定有人会建议使用django-twitter或其他类似的库,但我希望尽可能手动完成。
Cheers
答
Rss可以被任何xml解析器解析。我之前使用内置模块htmllib来完成不同的任务,并且发现很容易处理。如果你所做的只是rss解析,我推荐feedparser。我以前没有用过它,但看起来非常简单。
答
为什么重做石?,你可以下载/安装/进口蟒蛇,Twitter和做类似:
tweet = twitter.Api().GetUserTimeline(u.get_profile().twitter_account)[0]
http://code.google.com/p/python-twitter/
一个例子:http://www.omh.cc/blog/2008/aug/4/adding-your-twitter-status-django-site/
答
如果你使用python去-twitter它非常简单。这是来自记忆,所以如果我在这里犯了一个错误,请原谅我。
from django.core.cache import cache
import twitter
TWITTER_USER = 'username'
TWITTER_TIMEOUT = 3600
def latest_tweet(request):
tweet = cache.get('tweet')
if tweet:
return {"tweet":tweet}
api = twitter.Api()
tweets = api.GetUserTimeline(TWITTER_USER)
tweet = tweets[0]
tweet.date = datetime.strptime(
tweet.created_at, "%a %b %d %H:%M:%S +0000 %Y"
)
cache.set('tweet', tweet, TWITTER_TIMEOUT)
return {"tweet": tweet}