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

如何用bs4或Selenium抓取HTML隐藏input值及商品尺码对应库存

解决6pm商品尺码stockId与库存抓取问题

问题分析

你遇到的报错是因为默认页面未选中任何尺码,页面中不存在name="stockId"的<input>元素,soup.find()返回None后调用.get('value')自然触发AttributeError。另外该网站的库存逻辑特殊:仅当选中的尺码库存少于10件时,才会显示“仅剩#件库存”的提示;库存≥10件或缺货时无相关提示,且stockId仅在选中尺码后才会加载到页面中。

解决方案思路

  1. 提取所有尺码选项:初始页面包含所有可选尺码的元素,先获取每个尺码对应的标识(比如尺码的value或data属性)
  2. 模拟尺码选择请求:6pm选择尺码时通常会发起AJAX请求或跳转至带尺码参数的页面,需抓取该请求获取对应尺码的页面内容
  3. 解析目标数据:在尺码对应的页面内容中,提取stockId和库存提示信息

示例代码实现

import requests
from bs4 import BeautifulSoup

# 目标商品页面URL
base_url = "https://www.6pm.com/p/bogs-b-moc-mid-winter-painted-black-multi/product/9419937/color/80?zlfid=192&ref=pd_detail_1_sims_cv"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}

# 1. 获取初始页面,提取所有尺码选项
response = requests.get(base_url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')

# 找到尺码选择容器(需根据页面实际结构调整选择器)
size_options = soup.select('div.size-selection option[value]')

for size_opt in size_options:
    size_label = size_opt.text.strip()
    size_value = size_opt.get('value')
    
    # 2. 模拟选中尺码的请求(示例为跳转URL,实际需抓包确认请求方式)
    size_url = f"{base_url}&size={size_value}"
    size_response = requests.get(size_url, headers=headers)
    size_soup = BeautifulSoup(size_response.text, 'html.parser')
    
    # 3. 提取stockId
    stock_id_input = size_soup.find('input', attrs={'name': 'stockId'})
    stock_id = stock_id_input.get('value') if stock_id_input else "无对应stockId"
    
    # 4. 提取库存提示
    stock_notice = size_soup.find('span', text=lambda t: t and '仅剩' in t and '件库存' in t)
    stock_status = stock_notice.text.strip() if stock_notice else "库存≥10件或缺货"
    
    print(f"尺码: {size_label}")
    print(f"stockId: {stock_id}")
    print(f"库存状态: {stock_status}")
    print("---")

注意事项

  • 页面结构适配:代码中的元素选择器需要根据当前页面的实际HTML结构调整,建议用浏览器开发者工具查看元素属性
  • AJAX请求优化:如果选择尺码是通过AJAX加载数据,直接抓包获取AJAX接口URL和参数,请求接口获取JSON格式数据效率更高
  • 反爬应对:设置合理的请求间隔,使用真实的User-Agent,必要时加入登录后的Cookie验证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 09:41:00