Instagram单列表用户限额是否变更?Python爬取粉丝技术问询
关于Instagram的两个问题解答
问题1:Instagram是否更改了单列表可添加的用户数量限制?
目前Instagram的Close Friends(密友)列表仍然保持最多500人的上限,官方暂时没有发布调整这个限制的公告。如果是普通的自定义分类列表(用来给关注者分组),Instagram没有公开明确的数量上限,但实际操作中如果一次性添加大量用户,可能会触发平台的反垃圾机制,导致操作被暂时限制。
问题2:Python脚本爬取指定Instagram账号粉丝的相关建议
首先得严肃提醒你:Instagram的私有GraphQL接口不允许未经授权的爬取行为,这直接违反了他们的服务条款,一旦被检测到,你的账号大概率会被封禁,甚至IP会被限制,所以请务必谨慎权衡风险。
不过针对你提到的实现方式,我可以给你一些实际操作里的关键点:
- 关于
query_hash:这个哈希值是Instagram内部用来标识GraphQL查询的,它不是固定不变的——平台会定期更新这些哈希,你现在能用的17888483320059182可能过段时间就失效了,到时候需要重新从浏览器的网络请求里抓取最新的哈希值。 - 关于
first参数:虽然你解码后的URL标注取值范围是0到6000,但实际接口不会允许你一次性获取这么多数据。通常单次请求最多返回100-200条粉丝数据(具体数量可能根据账号权重、请求频率变动),如果设置的first值过大,接口要么返回错误,要么只返回部分数据。 - 分页处理逻辑:如果目标账号粉丝较多,你必须处理分页。第一次请求后,接口返回的结果里会有一个
end_cursor字段,下一次请求时要把这个值加到variables的after参数里,示例如下:
重复这个过程,直到返回结果里没有{"id":"<你的目标账号ID>","first":100,"after":"<上一次返回的end_cursor值>"}end_cursor,就说明已经获取了全部粉丝数据。 - 反爬应对技巧:Instagram的反爬机制很严格,脚本请求很容易被识别。建议:
- 用Selenium模拟真实用户的操作节奏,比如每次请求后加2-5秒的随机延迟;
- 不要固定使用同一个User-Agent,每次请求随机切换不同的浏览器UA;
- 避免短时间内发起大量请求,尽量分散请求间隔;
- 优先使用活跃的老账号来操作,新注册的账号更容易被判定为异常。
最后再强调一次,这种爬取行为不合规,风险很高。如果有合法的业务需求,建议申请使用官方的Instagram Graph API,这才是合规获取数据的途径。
内容的提问来源于stack exchange,提问作者Gianmarco F.
相关产品推荐
相关产品推荐

