如何获取Instagram账号的完整粉丝列表?API调用无法返回全部数据
获取Instagram全部粉丝列表的解决方案
Instagram的粉丝列表API采用分页机制,不会一次性返回所有粉丝数据,哪怕你把count设得极大也没用。要获取全部48.2K粉丝,你需要通过响应中的分页标记循环请求,直到获取完所有页的数据。
具体解决步骤:
- 每次请求API后,检查响应JSON里的
next_max_id字段(如果存在),这个字段是下一页数据的游标 - 把
next_max_id作为参数添加到下一次的API请求URL中,格式为&max_id=xxx - 循环执行「请求→提取数据→检查游标」的流程,直到响应中不再返回
next_max_id,说明所有数据已获取
修改后的Python脚本示例
import json import requests import time # 替换为目标账号ID、你的会话headers(需要包含登录后的cookie等验证信息) TARGET_USER_ID = "XXX" HEADERS = { "User-Agent": "Instagram 292.0.0.12.109 Android", "Cookie": "你的登录cookie" # 必须带上,否则API会返回未授权 } def get_all_followers(): all_usernames = [] max_id = None while True: # 构建请求URL,带上max_id(如果有) url = f"https://i.instagram.com/api/v1/friendships/{TARGET_USER_ID}/followers/?count=200&search_surface=follow_list_page" if max_id: url += f"&max_id={max_id}" # 发送请求,添加延迟避免被限制 response = requests.get(url, headers=HEADERS) time.sleep(1) data = response.json() # 提取当前页的用户名 for user in data.get('users', []): all_usernames.append(user['username']) # 检查是否有下一页 max_id = data.get('next_max_id') if not max_id: break # 保存或打印结果 print(f"共获取到{len(all_usernames)}个粉丝用户名") with open('all_followers.json', 'w') as f: json.dump(all_usernames, f, indent=2) if __name__ == "__main__": get_all_followers()
注意事项:
- 会话验证:必须带上登录后的
Cookie和正确的User-Agent,否则Instagram API会拒绝请求(返回401或403) - 请求频率控制:每次请求后添加1-2秒延迟,避免触发Instagram的反爬机制导致账号受限
- 字段兼容性:Instagram的API字段可能会更新,如果
next_max_id不存在,可以检查响应里的pagination或其他类似分页字段
内容的提问来源于stack exchange,提问作者Reza Shakak
相关产品推荐
相关产品推荐

