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

配置含mid的Cookies请求Instagram返回空CookieJar,mid是否被加密?

问题分析与解决

首先明确:mid字段没有被加密,导致你看不到响应Cookie的原因主要有以下几点:

1. Instagram的Cookie下发逻辑

mid是Instagram的会话标识Cookie,属于持久Cookie。服务端只会在检测到客户端未携带该Cookie时,才会通过Set-Cookie头下发它。你已经在请求中主动携带了mid,服务端判断你已持有有效标识,因此不会在响应中重复返回。

2. Requests库的CookieJar行为

response.cookies仅收集服务端本次响应通过Set-Cookie头发送的Cookie,不会包含你发送给服务端的Cookie。你携带的mid存在于请求的Cookie中,可以通过response.request.cookies查看,而不是响应的CookieJar里。

3. 反爬机制导致无Cookie返回

Instagram有严格的反爬策略,如果你的请求头、Cookie组合不符合浏览器的真实请求特征,服务端可能会拒绝返回任何Cookie(甚至返回4xx/5xx状态码),最终导致response.cookies为空。比如你的请求头中sec-ch-ua和user-agent版本不匹配(Chrome 107对应Edg 106),这种不一致可能触发反爬检测。


解决方法

方法1:查看自己发送的mid

如果你只是确认mid是否被正确发送,直接检查请求的Cookie:

print(response.request.cookies.get('mid'))

方法2:让服务端重新下发mid

清空请求中的mid字段,让服务端认为你是新会话,此时响应会包含mid:

cookies = {
    'csrftoken': 'zqTulCRLP4j19qZjlz5wxlaPMqgBtAg1',
    'ig_did': '28DDE3CE-4A94-40B5-8E79-F8A723675F1E',
    'ig_nrcb': '1',
    'dpr': '2.625'
}
# 发送请求后查看响应Cookie
response = get('https://www.instagram.com/', cookies=cookies, headers=headers)
print(response.cookies.get('mid'))

方法3:完善请求特征

  • 确保user-agent和sec-ch-ua等头信息完全匹配浏览器的真实请求(可以从浏览器开发者工具中复制)。
  • 如果是登录状态,补充sessionid等必要的登录Cookie。
  • 避免使用cache-control: no-cache这类可能暴露脚本请求的头,尽量模拟浏览器的默认请求头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:15:35