如何解决使用next方法预测下一次迭代的错误
我想通过Tweepy
来吸引用户的朋友,并且在特定时间间隔内可以获取的朋友数量受到限制。为了处理此查询限制,我使用try-except添加了条件。逻辑是让Tweepy尝试结识下一个朋友,如果出现错误请等待15分钟。但是我意识到next()
方法不起作用。我做错了什么?
auth = tweepy.OAuthHandler(consumer_key,consumer_secret)
auth.set_access_token(access_token,access_token_secret)
api = tweepy.API(auth)
def get_user_friends(screen_name):
friends = []
for user in tweepy.Cursor(api.friends,screen_name=screen_name).items(200):
friends.append(user.screen_name)
try:
test = user.next() # Here
except:
time.sleep(60 * 15)
continue
return friends
解决方法
您需要使用游标的next()方法,这将起作用:
import time
def limit_handled(cursor):
while True:
try:
yield cursor.next()
except tweepy.RateLimitError:
time.sleep(15 * 60)
except StopIteration:
return
def get_user_friends(screen_name):
friends = []
for user in limit_handled(tweepy.Cursor(api.friends,screen_name=screen_name).items(200)):
friends.append(user.screen_name)
return friends
您还可以查看文档here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。