如何通过Instagram Private Api获取超过100条关注者数据?
解决Instagram Private Api获取关注者仅返回100条的问题
你的代码存在几个关键问题导致无法分页获取所有关注者:
- 初始未获取第一页关注者数据就直接读取
next_max_id,变量未定义会引发错误 - 分页请求时未传递上一页返回的
next_max_id,导致每次都重复请求第一页数据 - 未将第一页的关注者数据加入列表
以下是修正后的代码:
from random import randint from time import sleep # 假设api已经完成初始化认证 user_id = api.username_info('target')['user']['pk'] usernames = [] # 首先获取第一页关注者数据 followers = api.user_followers(user_id, rank_token=api.generate_uuid()) # 将第一页的用户名加入列表 for follower in followers['users']: usernames.append(follower['username']) next_max_id = followers.get('next_max_id') # 循环分页获取剩余数据 while next_max_id: delay = randint(20, 40) print(f"Sleep {delay}s") sleep(delay) # 传递next_max_id获取下一页数据 followers = api.user_followers( user_id, rank_token=api.generate_uuid(), max_id=next_max_id # 关键:添加max_id参数传递分页标记 ) next_max_id = followers.get('next_max_id') # 将当前页的用户名加入列表 for follower in followers['users']: usernames.append(follower['username']) print(f"总共获取到{len(usernames)}个关注者")
关键修改点说明:
- 先执行一次
user_followers获取第一页数据,并将数据加入列表 - 分页请求时通过
max_id参数传递上一页的next_max_id,告诉API要获取下一页内容 - 修复了初始
followers未定义的问题
注意:Instagram对API请求频率有严格限制,当前设置的20-40秒延迟可以降低被封号的风险,请勿随意缩短延迟时间。
内容的提问来源于stack exchange,提问作者MasterMind
相关产品推荐
相关产品推荐

