如何使用Python requests与pandas模块查询Target官网商品库存
Target周边门店库存查询代码可行性说明
可以基于你提供的代码逻辑实现需求,但原代码仅支持查询商品定价,需要调整部分逻辑才能获取库存数据。
原代码的可用部分
你给出的代码已经完成了核心流程的搭建:
- 初始化请求会话,访问Target主页获取访客cookie
- 从cookie中解析访客标识
visitorId和用户所在地理位置 - 调用接口查询用户周边最近的门店ID
- 请求商品详情接口获取对应门店的商品数据
需修改的内容
1. 补充请求头避免反爬拦截
裸请求很容易被Target的反爬机制返回403,需要给请求补充UA标识,示例:
headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" } # 后续所有requests请求都带上headers参数即可
2. 补充库存字段解析逻辑
原代码仅解析了返回数据中的price字段,库存数据可以从返回的store_product_availability字段中提取,修改后的解析部分示例:
# 原有请求逻辑不变,仅修改数据解析部分 jsonData = requests.get(url, params=payload, headers=headers).json() # 提取库存信息 stock_info = jsonData.get('store_product_availability', {}) stock_status = stock_info.get('availability_status', '未查询到库存状态') available_quantity = stock_info.get('available_to_sell_quantity', 0) # 合并价格、库存信息生成DataFrame df = pd.DataFrame([{ '门店ID': store_id, '商品TCIN编码': product_id, '当前售价': jsonData['price'].get('current_retail'), '库存状态': stock_status, '可售库存数量': available_quantity }])
3. 多门店库存查询拓展
如果需要查询周边多个门店的库存,只需要调整附近门店查询接口的limit参数,拿到多个门店ID后循环请求商品接口即可。
注意事项
- 控制请求频率,短时间内大量请求会触发Target反爬限制,导致访客cookie被封禁
- 代码中填写的
product_id必须为Target平台商品对应的官方TCIN编码,否则无法查询到对应商品- Target的接口路径、参数规则、返回字段结构可能随时调整,若代码运行报错需要对应调整适配新的接口规则
内容的提问来源于stack exchange,提问作者jason pullman
相关产品推荐
相关产品推荐

