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

Python爬取Yoox电商数据时打印商品品牌名全部返回None如何解决?

问题解决方案

你遇到的返回None的问题是由多个常见的爬虫错误共同导致的,按优先级调整即可解决:

  • 所有请求统一加请求头
    你现在只在商品详情页的请求里加了headers参数,列表页、首页的请求都没有带,网站会直接识别为爬虫返回拦截页面,你解析的soup本身就不是正常的商品页面,自然找不到对应元素。先把列表页的请求修改为:
r = requests.get(f'https://www.yoox.com/us/men/shoponline/sneakers_c#/dept=shoesmen&gender=U&page={x}&attributes=%7b%27ctgr%27%3a%5b%27snkrs5%27%5d%7d&season=X', headers=headers)
  • 替换列表页的hash路由URL
    Yoox用的是前端hash路由,URL里#后面的参数不会被requests传递给服务端,你当前请求的地址实际返回的只是通用的页面框架,没有商品列表数据。你可以打开浏览器F12的网络面板,刷新列表页筛选XHR请求,找到实际加载商品数据的接口,直接请求接口拿JSON数据,比解析HTML稳定性高很多。
  • 修正元素定位规则
    你当前用的类名brand font-bold text-uppercase要么是前端动态生成的,要么不存在于静态HTML中。你可以右键商品详情页选择「查看网页源代码」,直接在源代码里搜索品牌名称的文本,确认它实际对应的标签和类名,再调整soup.find的参数即可。如果品牌信息是JS动态渲染的,静态HTML里没有,可以换用Selenium、Playwright这类动态渲染工具爬取,或者找详情页的商品数据接口直接请求。
  • 增加请求校验
    可以在每次请求后加一行判断if r.status_code == 200再解析内容,避免请求失败的无效内容进入解析逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:09:04