Adidas新加坡发售日期页爬虫运行无输出无报错如何解决?
爬虫无输出问题排查方向
- CSS选择器语法错误
你当前的商品卡片选择器.plc-product-card___1tVAm plc-product-card-mobile___3bmHS是后代选择器规则,代表查找父节点包含plc-product-card___1tVAm类、子节点包含plc-product-card-mobile___3bmHS类的元素,而这两个类实际是在同一个商品卡片节点上,需要改为同节点多类选择器:.plc-product-card___1tVAm.plc-product-card-mobile___3bmHS,两个类名之间不加空格直接用.连接。这是最可能导致for循环完全不执行、无输出也无报错的原因。 - 先加调试代码定位问题
在for循环前插入以下测试代码,即可快速定位根因:
运行后根据输出判断:# 调试代码片段 print("请求响应状态码:", productsource.status_code) print("返回页面内容长度:", len(productsource.text)) target_selector = ".plc-product-card___1tVAm.plc-product-card-mobile___3bmHS" print("匹配到的商品卡片数量:", len(productinfo.select(target_selector)))- 状态码非200:请求被站点反爬策略拦截,需要补充Cookie、更换代理或调整请求头参数
- 匹配商品卡片数量为0:要么类名已经更新,要么页面内容是前端JS动态渲染,requests仅能获取静态初始HTML,拿不到JS生成的商品数据
- 类名有效性校验
站点前端构建时会自动给类名加哈希后缀(比如___1tVAm这类随机串),这类后缀会随版本更新变化,你需要手动打开目标页面按F12查看当前商品卡片的真实类名,替换代码里过时的类名。 - 动态渲染内容适配
如果确认商品数据是JS动态渲染生成,直接用requests无法采集,需要改用Selenium、Playwright等支持浏览器JS执行的工具获取完整渲染后的页面内容,再做解析。 - 字段选择器修正
你当前代码里价格和发售日期用了完全相同的选择器,就算能匹配到商品卡片,也拿不到正确的发售日期,后续需要单独找发售日期对应的节点类名。
内容的提问来源于stack exchange,提问作者meliz
相关产品推荐
相关产品推荐

