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

使用Scrapy通过API抓取数据时Response.css返回空列表如何解决

问题原因
  • 你发起请求的searchapi.samsung.com是后端数据接口,返回格式为JSON,不存在HTML结构中的product-card-v2__item类节点。response.css()仅适用于解析HTML/XML类型的响应,无法作用于JSON数据,因此返回空列表。
  • 三星官网前端页面的product-card-v2__item类元素是前端拿到接口数据后,通过JS动态渲染生成的,直接抓取原页面的静态HTML同样不存在该节点,也会出现提取为空的问题。
解决方法

方案1:直接解析API返回的JSON数据(推荐,效率更高)

该接口已经直接返回了所有产品的结构化数据,不需要用CSS选择器解析,直接调用response.json()转换为Python字典后提取对应字段即可:

# 转换响应为JSON格式
product_data = response.json()
# 遍历产品列表提取信息,字段路径可根据实际返回结构调整
for item in product_data["response"]["resultData"]["productList"]:
    # 提取产品名称
    product_name = item.get("productName")
    # 提取产品售价
    product_price = item.get("priceInfo", {}).get("finalPrice", {}).get("displayPrice")
    print(f"产品名:{product_name},售价:{product_price}")

方案2:渲染JS后解析原页面HTML

如果你需要直接爬取三星官网的列表页面,需要引入支持JS渲染的工具,等待页面动态渲染出product-card-v2__item节点后再提取:

  • Scrapy项目可集成scrapy-playwright插件,开启JS渲染后再调用CSS选择器
  • 小规模抓取可以直接使用selenium模拟浏览器访问,等页面加载完成后再提取元素

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:54:04