我正在使用Django(1.7)建立一个网站,从twitter api中提取推文。我想要来自特定用户的最新10条推文。确保推文是最新的最佳方法是什么?
我的想法是擦除10条推文的数据库,每5分钟抓一条最新的10条?我该怎么做?它会在model.py文件中吗?这是最好的方法吗?
现在我在models.py文件的底部有以下代码。它完美地填充数据,但我将如何更新它?我使用twython与twitter api和python 3.4进行交互。
list_of_people是Twitter用户名我正在测试。 twython传回一个dicts列表,然后我从每条推文中抓取我想要的数据并将其放入数据库
twitter = twython.Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
list_of_people = ["billgates", "TheEllenShow"]
for person in list_of_people:
user_timeline = twitter.get_user_timeline(screen_name=person)
for x in range(10):
Category.objects.create(username=person, realname=user_timeline[x]['user']['name'],
tweets=user_timeline[x]['text'],tweettime=user_timeline[x]['created_at'])
答案 0 :(得分:2)
您可以通过两种不同的方式完成此操作:
使用cron定期调用脚本。这是最直接,最简单的解决方案。除了cron行之外,无需配置任何额外的工具。
使用celery配置periodic task。当然,这个会花费你更多的时间,因为你必须学习如何处理一个新的(非常有用的)工具。
如果你认为你不需要芹菜,我会推荐第一个。如果你想学习新东西,那么第二个因为任务将与Django更加集成。