You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

未登录调用Instagram用户数据API遇400错误,求Python requests解决方案

解决Instagram web_profile_info API请求400错误的方案

当你用Python requests库调用Instagram的web_profile_info API时出现400错误,核心原因是请求缺少浏览器自带的关键请求头——Instagram的API会通过这些头验证请求来源,仅用requests默认的请求头会被判定为非法请求。

必要请求头说明

从你提供的浏览器请求截图来看,以下几个请求头是必须的:

  • User-Agent:模拟浏览器的身份标识,让服务器识别请求来自合法的浏览器客户端
  • X-IG-App-ID:Instagram Web端的固定应用ID,是API校验的核心参数之一
  • Accept:指定接受的响应内容类型,匹配浏览器的默认设置
  • Referer:模拟从Instagram主页发起请求的上下文

可运行代码示例

import requests

# 目标API地址
api_url = "https://www.instagram.com/api/v1/users/web_profile_info/?username=kateannedesigns"

# 复制浏览器中的关键请求头(可根据你的浏览器实际请求头调整)
request_headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
    "X-IG-App-ID": "936619743392459",  # Web端Instagram通用的App ID,若失效可从浏览器请求头中提取
    "Accept": "*/*",
    "Referer": "https://www.instagram.com/"
}

# 发起请求
response = requests.get(api_url, headers=request_headers)

# 处理响应
if response.status_code == 200:
    profile_data = response.json()
    print(profile_data)
else:
    print(f"请求失败,状态码:{response.status_code},响应内容:{response.text}")

额外注意事项

  1. 如果上述代码仍返回错误,建议打开浏览器开发者工具,复制完整的请求头(除Cookie外的所有字段)到request_headers中,确保和浏览器请求完全一致
  2. Instagram的API规则可能随时更新,若后续再次出现400错误,需重新检查浏览器的请求头参数是否有变化
  3. 不要频繁发起请求,避免触发Instagram的反爬虫机制导致IP被限制

内容的提问来源于stack exchange,提问作者Asad Naqvi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 12:20:42