我有一个关于Instagram API和速率限制的问题--以及如何循环访问令牌来解决这个问题。
user_followers, next_ = api.user_followed_by(userid) #request data from API
while next_:
more_user_followers, next_ = api.user_followed_by(with_next_url=next_) #extract the list of followers
user_followers.extend(more_user_followers) #append each page of followers into this list with each iteration
counter=0 #set seed counter
user_followers, next_ = api.user_followed_by(userid) #request data from API
while next_:
try:
more_user_followers, next_ = api.user_followed_by(with_next_url=next_) #extract the list of followers and capture any error codes
except InstagramAPIError:
counter=counter+1 #upon rate-limit error, increment counter by 1 to call each access token
if counter==1:
access_token="accesstoken1"
if counter==2:
access_token="accesstoken2"
# etc...
counter=0 #for the final access_token in the list, reset counter to 0 to re-start at the top of the list and cycle until a hit is found
api=InstagramAPI(access_token=access_token,client_secret=client_secret) #I think this should push the new access_token to the Instagram API constructor, but perhaps this is where the error lies...
continue #I think this will break the current cycle and restart under the `while next_:` statement, thus attempting to pull the data using the new access token
user_followers.extend(more_user_followers) #append each page of followers into this list with each iteration
使用try:
语句成功捕获了速率限制错误,并且循环将正确地循环访问令牌--但是由于某些原因,这些令牌不会被识别或“推”回Instagram API接口,数据也不会被提取。循环只是不停地在代码中循环。
我知道这是可能的,因为我已经通过手动请求endpoint和在遇到速率限制错误时切换访问令牌(使用另一个软件包)实现了这一点,但我希望使用Python
Instagram API来实现这一点。
我最初的想法是,continue
中断不会在适当的上游点重置循环,或者在对user_followers,next_=api.user_followed_by(userid)
endpoint的给定调用中不能“切换”访问令牌。
最简单的解决方案-随机获取所有令牌。从统计上看,在多次运行后,负载将几乎相等。
如果他们中的一个突然筋疲力尽--下一个。
import random
tokens = ['aaaaa', 'bbbbb', 'cccc', ...]
token = random.choice(tokens)
就像pygame一样,我想限制循环的帧速率。Pygame提供Pygame。时间时钟勾选()方法: 如果您传递可选的framerate参数,函数将延迟以使游戏运行速度低于给定的每秒滴答数。这可以用来帮助限制游戏的运行速度。通过呼叫时钟。每帧勾选(40)一次,程序的运行速度不会超过每秒40帧。 但是如何在python中以本机方式实现呢? 举例说明: 制作: 我希望每秒25帧,所以
我们是否可以基于位置限制用户界面的特定流(基于位置的访问控制)? 用户界面的一部分及其功能只能在用户处于特定地理位置时才可用?我们计划采用基于网络的白名单IP地址,但由于网络基础设施的不足和过多的开销。我们得出结论,基于网络的限制并不是一个有效的解决方案。 我们还研究了基于GPS的解决方案,在这种情况下,我们不能依赖浏览器应用程序来获得适当的位置。 如果你们中的任何一个曾经在类似的技术上工作过,请
我使用IdentityServer4验证angular 4客户端以保护WebApi。但我在授权的情况下进入了401。我需要一种调试访问令牌验证过程的方法来帮助我解决问题。
问题内容: 我有一个用户组:“演示”。 我想设置该用户只能运行10个命令的策略,例如“ vim”,“ nano”,“ cd”等。 或者,将策略设置为对除“ ssh”和“ cat”命令之外的所有命令具有访问权限。 谢谢 问题答案: 您可以通过许多不同的方法来实现这一目标。我将列出几种可能的解决方案之一。 我建议使用几个不同的保护层,以防止用户运行不应被允许访问的命令。此处的所有说明均假定用户具有自己
在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name、score属性: >>> bart = Student('Bart Simpson', 98) >>> bart.score 98 >>> bart.score = 59 >>> bart.sc