如何用Instagrapi API定时获取Instagram新粉丝并保存会话/Cookie
解决方案:Instagrapi会话管理与粉丝获取优化
一、会话/Cookie保存与复用
Instagrapi原生支持会话设置的保存与加载,无需手动处理Cookie,具体实现代码如下:
from instagrapi import Client # 初始化客户端 cl = Client() USERNAME = "你的Instagram账号" PASSWORD = "你的Instagram密码" # 尝试加载已保存的会话 try: cl.load_settings("instagram_session.json") # 验证会话有效性,过期则自动重登 cl.login(USERNAME, PASSWORD, relogin=True) except Exception as e: # 首次登录或会话失效时重新登录 cl.login(USERNAME, PASSWORD) # 保存会话到本地文件 cl.save_settings("instagram_session.json") # 复用会话获取粉丝列表的函数 def get_followers(): user_id = cl.user_id_from_username(USERNAME) return cl.user_followers(user_id)
- 会话文件
instagram_session.json会自动存储Cookie、会话令牌等关键信息,避免每次登录触发风控检测。 relogin=True参数可在会话过期时自动重新登录,并更新本地保存的会话文件。
二、降低账号封禁风险的核心策略
30秒一次的全量粉丝拉取频率必然触发Instagram风控机制,即使复用会话也大概率导致账号受限,建议调整为以下方案:
- 增量获取而非全量拉取:首次拉取完整粉丝列表后,后续仅通过
max_id参数分页获取新增粉丝,减少请求数据量和服务器负载:# 首次获取所有粉丝,记录分页标记 user_id = cl.user_id_from_username(USERNAME) followers = cl.user_followers(user_id) last_max_id = cl.last_json.get("next_max_id") # 后续增量获取新增粉丝 def get_new_followers(): nonlocal last_max_id if not last_max_id: return {} new_followers = cl.user_followers(user_id, max_id=last_max_id) last_max_id = cl.last_json.get("next_max_id") return new_followers - 调整请求间隔:将间隔从30秒提升至5-10分钟,Instagram对高频请求的检测阈值极低,短间隔请求几乎一定会被标记为异常。
- 模拟真实用户行为:在请求之间加入随机延迟(如10-30秒),避免固定时间间隔;偶尔执行浏览帖子、点赞等正常操作,降低账号异常评分。
三、替代方案考量
如果对实时性要求不是极端严格,可考虑更合规的方案:
- 官方用户数据导出:通过Instagram设置中的「下载你的信息」功能导出粉丝列表,完全合规无封禁风险,适合非实时的粉丝统计需求。
- 第三方合规工具:部分社交媒体管理工具提供粉丝变动通知功能,基于合规的API实现,无需自行维护会话和风控逻辑。
内容的提问来源于stack exchange,提问作者NineCookiez
相关产品推荐
相关产品推荐

