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

使用Python requests发起商品加购请求返回ProdLocked无法获得正确响应

问题排查&解决方案

1. 商品ID拼接错误

你访问商品详情页的商品ID为 DGBJAF-A900962EG,但加购请求的路径中你把ID里的横杠去掉了,拼成了 DGBJAFA900962EG-000,正确的加购商品ID应该保留横杠,为 DGBJAF-A900962EG-000,这是触发 ProdLocked 最直接的原因。

2. 缺少必要的请求头参数

PChome的加购接口会校验 Referer、X-Requested-With 等请求头,仅传User-Agent会被服务器判定为非法爬虫请求,你需要在请求头里补充这两个参数:

'Referer': 'https://24h.pchome.com.tw/prod/DGBJAF-A900962EG?fq=/S/DGCV0M',
'X-Requested-With': 'XMLHttpRequest'

3. 不必要的手动Cookie传递

requests.session() 会自动存储、携带之前请求返回的Cookie,不需要你手动提取Cookie再传入下一个请求,多余的操作反而可能导致Cookie校验失败。

4. 时间戳校验

接口的时间戳参数需要和服务器时间误差不超过30秒,建议先简单校验本地时间是否和网络时间同步。


修正后的代码参考:

import requests                                                        
import time                                                            

t = int(round(time.time()*1000))
session = requests.session()
# 统一请求头
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36',
    'Referer': 'https://24h.pchome.com.tw/prod/DGBJAF-A900962EG?fq=/S/DGCV0M',
    'X-Requested-With': 'XMLHttpRequest'
}
# 请求商品页获取必要Cookie,session会自动存储
session.get('https://24h.pchome.com.tw/prod/DGBJAF-A900962EG?fq=/S/DGCV0M', headers=headers)
# 修正商品ID,补回横杠
snap_up = session.get(f'https://24h.pchome.com.tw/prod/cart/v1/prod/DGBJAF-A900962EG-000/snapup?_{t}', headers=headers)                        
print(snap_up.text)

如果修改后还是返回 ProdLocked,可以再检查商品是否处于限购、无货状态,或者是否需要登录账号后才能加购(你当前的代码没有携带登录态Cookie,部分商品需要登录才能触发加购逻辑)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:54:03