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

使用instagram-private-api调用接口报JSONDecodeError错误如何解决

错误根因

你遇到的json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)错误,本质是Instagram接口返回内容不是合法JSON格式,大概率是反爬拦截导致返回了空内容、403/429等错误状态页,和你的业务逻辑代码无关。你使用的1.6.0.0版本instagram-private-api早已停止维护,无法适配Instagram最新的接口校验规则,这是问题的核心诱因。

排查与修复方案

1 临时反爬限制排查

  • 先校验是否触发了平台临时限流:如果此前请求频率过高,先更换请求IP、调整请求间隔为10秒以上,间隔24小时后再重试,确认是否为临时封禁。
  • 增加调试逻辑打印原始响应:在请求代码处增加异常捕获,输出接口返回的状态码和原始内容,确认拦截类型:
from instagram_web_api import Client
import json

instagram_web_api = Client(auto_patch=False, drop_incompat_keys=False)

try:
    post_info = instagram_web_api.media_info2('CVNgb7us34V')
    post_text = post_info['edge_media_to_caption']['edges'][0]['node']['text']
    print(post_text)
except json.JSONDecodeError as e:
    # 此处可打印返回的原始响应排查拦截原因
    if hasattr(e, 'response'):
        print(f"请求状态码:{e.response.status_code},返回前500字符内容:{e.response.text[:500]}")
    else:
        print("接口返回空内容")

2 代码适配修复

Instagram目前对未登录的公开接口请求限制极严,这也是你首次测试能成功、后续直接报错的原因,必须传入登录凭证初始化客户端才能正常请求:

from instagram_web_api import Client

# 替换为你自己的Instagram账号登录信息,也可传入已登录的session对象避免重复登录
instagram_web_api = Client(
    auto_patch=False, 
    drop_incompat_keys=False,
    username="你的Instagram账号",
    password="你的Instagram密码"
)

post_info = instagram_web_api.media_info2('CVNgb7us34V')
post_text = post_info['edge_media_to_caption']['edges'][0]['node']['text']
print(post_text)

3 备选方案

如果上述方案仍无法生效,说明该版本库已完全无法适配当前Instagram接口规则,可替换为官方的Graph API接口,或者使用其他仍在维护的第三方Instagram请求库。

内容的提问来源于stack exchange,提问作者hyper-cookie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:36:02