Instagrapi中user_followers()方法无法获取全部粉丝问题求助
问题分析与解决方法
问题1:仅能获取单个粉丝
调用cl.user_followers(target_user_id, 1)时,第二个参数1明确指定了返回粉丝的数量,因此只会返回1条结果。若要获取全部粉丝,需移除数量参数,或设置一个足够大的数值(比如float('inf')),但需注意Instagram的反爬虫限制。
问题2:触发401未授权及限流提示
错误日志显示先出现401未授权错误,后续触发限流提示Please wait a few minutes before you try again,核心原因包括:
- Instagram的API高频操作限制:批量抓取粉丝属于高风险操作,极易触发反爬虫机制
- 会话有效性:登录会话可能过期,或账号权限不足
- 请求频率过高:短时间内连续请求被系统判定为异常流量
解决步骤
校验并重置会话
重新登录或加载已保存的有效会话,确保账号权限正常:cl.login("你的用户名", "你的密码") # 或加载本地保存的会话文件 cl.load_settings("session.json")严格控制请求频率
利用instagrapi内置的延迟机制,或手动添加随机间隔:# 设置每次请求的随机延迟范围(2-5秒) cl.delay_range = [2, 5]分批次增量获取粉丝,避免一次性请求全部数据:
followers = [] max_id = None while True: # 每次获取50个粉丝 chunk, max_id = cl.user_followers_v1_chunk(target_user_id, amount=50, max_id=max_id) followers.extend(chunk) if not max_id: break规避限流风险
- 优先使用有正常活跃度的老账号操作,避免用新注册账号
- 模拟真人行为:不要在短时间内批量抓取多个用户的粉丝列表
- 触发限流后,必须等待15-30分钟再重试,禁止频繁请求
检查目标账号权限
确认目标账号为公开账号;若目标是私人账号,需确保你的登录账号已关注该账号。
安全获取全部粉丝的代码示例
import time from instagrapi import Client import json cl = Client() cl.login("你的用户名", "你的密码") cl.delay_range = [3, 6] # 设置更保守的随机延迟 target_user_id = "5947509596" all_followers = [] next_max_id = None try: while True: chunk, next_max_id = cl.user_followers_v1_chunk(target_user_id, amount=50, max_id=next_max_id) all_followers.extend(chunk) print(f"已获取{len(all_followers)}个粉丝") if not next_max_id: break time.sleep(cl.delay_range[0]) # 额外添加固定延迟 except Exception as e: print(f"执行中断:{e}") # 保存已获取的部分数据 with open("partial_followers.json", "w") as f: json.dump([user.dict() for user in all_followers], f, indent=2)
内容的提问来源于stack exchange,提问作者AEG
相关产品推荐
相关产品推荐

