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

使用BeautifulSoup爬取Zara商品价格失败,求解决方法

Zara土耳其站点男士西装外套价格爬取问题解决

问题根源

  1. 请求头非法:你的HEADERS中User-Agent字段包含多余的your text占位符,导致请求头不符合标准浏览器格式,网站可能限制了这类请求的返回内容。
  2. 动态数据渲染:Zara商品列表的价格是通过JavaScript动态加载的,直接爬取静态HTML无法获取到目标数据。

解决步骤

步骤1:修复请求头

移除User-Agent里的无效内容,确保请求头模拟正常浏览器。

步骤2:调用后端数据接口

Zara页面加载时会通过API接口返回商品的JSON格式数据,直接请求该接口能更可靠地获取价格信息,无需解析动态渲染的HTML。

修正后的代码

import requests

# 修正后的标准请求头
HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
    "Accept-Language": "tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7"
}

# 直接请求Zara商品数据接口,参数对应土耳其站点的男士西装外套分类
api_url = "https://www.zara.com/tr/tr/api/v1/products?categoryIds=608&limit=24&offset=0&sort=popularity&locale=tr_TR&storeId=193"
response = requests.get(api_url, headers=HEADERS)
data = response.json()

# 遍历提取商品名称与价格
for product in data['products']:
    product_name = product['name']
    current_price = product['price']['current']
    print(f"{product_name}: {current_price} TRY")

补充说明

  • 接口参数中categoryIds=608对应男士西装外套分类,storeId=193对应土耳其站点,这些参数可从原页面的网络请求记录中获取。
  • 若需加载更多商品,可调整offset参数(如offset=24获取第25-48个商品)。

内容的提问来源于stack exchange,提问作者Erdem Kabadayı

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 18:52:46