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

Webscraping耐克运动鞋尺码库存 解决Nike页面爬虫空输出问题

Nike商品库存抓取问题排查

空输出成因

  • 动态渲染问题:Nike的商品页所有库存、SKU相关数据都是JS异步加载后渲染的,你用requests直接拉的只是个空的HTML壳,里面根本没有你要找的那个input标签,soup.find自然返回None,你直接取['input']要么报错要么拿不到内容。
  • 反爬拦截:你裸用requests发请求,没有带User-Agent之类的浏览器头,Nike直接给你返回反爬验证页,根本不是正常的商品页,当然找不到元素。
  • 硬编码逻辑错误:你写死的value值25634224:11是跟SKU绑定的动态值,就算页面是静态的,换个商品或者Nike前端改个配置就匹配不到了,这个写法本身就不稳定。

需求可行性

完全可以实现,不用费劲爬前端DOM,Nike有公开的库存查询接口,直接调接口拿数据比解析页面稳得多也快得多。

推荐实现方案

  • 优先调官方接口:你要查的是意大利站的CW2288-111这个SKU,构造请求的时候带上country=IT、language=it的参数,再加个正常的浏览器请求头,直接调Nike的库存接口就能拿到全尺码的库存数据,不用解析页面。
  • 一定要爬前端的话,就用Selenium或者Playwright这类自动化工具,模拟浏览器打开页面等个几秒等内容加载完再找元素,还要记得改请求头、加代理规避反爬,不然很容易被封。

原代码可修复点

你现有的代码就算解决了反爬问题也拿不到动态数据,基础逻辑有问题,修正后的可运行版本如下(仅解决请求和异常问题,依然拿不到动态渲染的元素,需要配合自动化工具使用):

from bs4 import BeautifulSoup
import requests

url = 'https://www.nike.com/it/t/scarpa-air-force-1-07-lKPQ6q/CW2288-111'
# 模拟浏览器请求头,避免被反爬直接拦截
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
    "Accept-Language": "it-IT,it;q=0.9,en;q=0.8"
}
resp = requests.get(url, headers=headers)
soup = BeautifulSoup(resp.content, 'html.parser')

input_tag = soup.find(attrs={"value": "25634224:11"})
# 先判空再取值,避免直接抛出异常
if input_tag:
    output = input_tag.get('input', '')
    print(output)
else:
    print("未匹配到目标元素")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:57:01