在尝试学习Python-tweepy api时,我整理了一些代码,告诉我在最近的~10秒间隔内是否有任何新的推文(当然,实际上它超过10个)秒,因为除sleep(10)
之外的代码也需要一些时间才能运行):
from getApi import getApi
from time import sleep
from datetime import datetime
api = getApi()
top = api.home_timeline()[0].id
while True:
l = api.home_timeline()
if top != l[0].id:
top = l[0].id
print 'New tweet recognized by Python at: %s' % str(datetime.now())
sleep(10)
getApi只是我编写的几行Python,用于使用tweepy来管理OAuth。 getApi方法返回tweepy api,我的帐户已经过身份验证。
似乎非常低效,我不得不一次又一次地询问Twitter是否有新的推文。这是通常的做法吗?如果没有,那么“规范”的做法是什么?
我会想到会有一些代码:
api.set_home_timeline_handler(tweetHandler)
只要有新的推文,就会调用和tweetHandler。
答案 0 :(得分:1)
这就是twitter API的工作方式 - 每次想要了解Twitter上的内容时,都会询问。但要注意每10秒的速率限制https://dev.twitter.com/docs/rate-limiting
高于最大值
或者有流式api:https://dev.twitter.com/docs/streaming-api/methods
可以像您想象的那样工作,但它比检查您的时间线更重要。