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

Instagram帖子图片获取链接匿名访问404问题求助

解决Instagram匿名访问帖子图片404问题

问题根源

Instagram的反爬机制会校验sec-fetch-site请求头:当该字段为cross-site时,会判定为跨域脚本请求并拦截返回404;而手动在地址栏输入URL回车时,浏览器会自动将该头设为none(表示请求来自地址栏,无跨域上下文),Insomnia/Postman等工具默认不携带跨域相关头,因此能正常访问。

解决办法

  • 强制设置sec-fetch-site请求头为none
    在Axios请求中手动添加该头,覆盖默认的跨域值,同时补充浏览器常规请求头以模拟正常访问:

    axios.get('https://www.instagram.com/p/Cr7Ub8ULkzV/media/?size=l', {
      headers: {
        'sec-fetch-site': 'none',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
        'accept': 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
        'accept-language': 'zh-CN,zh;q=0.9'
      },
      withCredentials: false
    })
    
  • 模拟地址栏请求上下文
    如果前端直接发起请求仍被拦截,可尝试:

    • 通过后端代理请求:后端发起HTTP请求时不受浏览器跨域头限制,不会自动添加cross-site标识
    • 前端模拟地址栏跳转:创建<a>标签设置图片地址并触发点击,或使用window.open()打开图片链接,这种方式会自动触发浏览器的地址栏请求逻辑,sec-fetch-site会被设为none
  • 补充完整跨域相关请求头
    对比浏览器手动访问的请求头,补充sec-fetch-mode、sec-fetch-dest等字段,进一步降低被拦截概率:

    headers: {
      'sec-fetch-site': 'none',
      'sec-fetch-mode': 'navigate',
      'sec-fetch-dest': 'image',
      // 其他常规头...
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 22:42:55